數(shù)組是一種非常有用和常用的數(shù)據(jù)類型,存在于每種程序語言之中,java中的數(shù)組是一種最簡單的復(fù)合數(shù)據(jù)類型,剛學(xué)習(xí)java數(shù)組的小白們大多都會(huì)聽到一句這樣的話:java是純面向?qū)ο蟮恼Z言,它的數(shù)組也是一個(gè)對(duì)象。所以很多人就按照一個(gè)對(duì)象的方式來使用數(shù)組,后來你會(huì)發(fā)現(xiàn),將數(shù)組作為一個(gè)類來使用在實(shí)現(xiàn)上是多么的“不自然”。下面就來全面了解一下關(guān)于java中數(shù)組的知識(shí)。
int a = 10;
Integer integer = new Integer(a);
int b = integer.intValue();
System.out.println(a = b);
int[] arr = new int[5];
arr[0] = 1;
arr[1] = 2;
int[] arr = new int[]{3,5,1,7};
int[] arr = {3,5,1,7};
int [] arr
示例:String[] aArray = new String[5];
String[] bArray = {"a","b","c", "d", "e"};
String[] cArray = new String[]{"a","b","c","d","e"};
注意:int arr[] 也是一種創(chuàng)建數(shù)組的格式。推薦使用int [] arr 的形式聲明數(shù)組。public static void main(String[] args) {
// 1.方式一 聲明 分配空間并賦值
int[] arr1 = {1,2,3};
// 2.方式二 顯示初始化
int[] arr2;
arr2 = new int[]{1,2,3};
// 3.方式三 顯示初始化()
int[] arr3;
arr3 = new int[3];
}
他們的區(qū)別,方式一:在聲明的時(shí)候直接就已經(jīng)分配空間,并賦值,方式一是不能寫成如下這種形式的。int[] arr1;
arr1 = {1,2,3};//錯(cuò)誤寫法 編譯不同過
方式二和方式三,聲明和內(nèi)存分配是分開的,如上面的例子,int[] arr2; 和 int[] arr3;
這一步是在棧空間分配一個(gè)引用,存放的是一個(gè)引用,nullarr2 = new int[]{1,2,3};<span style="font-family: Arial, Helvetica, sans-serif;">arr3 = new int[3];</span>
到這一步的時(shí)候jvm才開始在內(nèi)存堆區(qū)域分配空間,并賦值,方式二直接賦值 1,2,3 方式三 默認(rèn)初始化,基本類型是 0 布爾類型是 false 引用類型為null,int[]arr = { 1, 2, 3, 4, 5 };
方式二:使用運(yùn)算符newint[] arr2 = new int[] { 1, 2, 3, 4, 5 };
int[] arr3=new int[3];
arr3[0]=1;
arr3[1]=5;
arr3[2]=6;
如果數(shù)組初始化中不使用運(yùn)算符new。需要注意:下列寫法是錯(cuò)誤的。int[] arr;
arr={1,2,3,4,5};
此時(shí)初始化數(shù)組,必須將聲明,創(chuàng)建,初始化都放在一條語句中個(gè),分開會(huì)產(chǎn)生語法錯(cuò)誤。
所以只能如下寫:
int[] arr={1,2,3,4,5};
import java.util.Arrays;
/**
* 數(shù)組綜合測(cè)試
*
* @author leizhimin 2009-7-28 12:35:41
*/
public class TestArrays {
public static void main(String[] args) {
int[] i = new int[10];
//填充數(shù)組
Arrays.fill(i, 2);
//遍歷數(shù)組
for (int x : i) {
System.out.print(x + " ");
}
//toString()數(shù)組
System.out.println("\n" + Arrays.toString(i));
//復(fù)制數(shù)組
int[] b = new int[12];
System.arraycopy(i, 0, b, 2, 5);
System.out.println(Arrays.toString(b));
//一維數(shù)組的比較
int[] c = new int[3];
int[] d = new int[3];
Arrays.fill(c, 3);
Arrays.fill(d, 3);
System.out.println(c.equals(d));
System.out.println(Arrays.equals(c, d));
System.out.println("-------------");
int[][] a1 = {{1, 2, 3}, {4, 5, 6}};
int[][] a2 = {{1, 2, 3}, {4, 5, 6}};
System.out.println(a1.equals(a2));
System.out.println(Arrays.equals(a1, a2));
System.out.println(Arrays.deepEquals(a1, a2));
//深度toString()
System.out.println(Arrays.toString(a1));
System.out.println(Arrays.deepToString(a1));
//數(shù)組的排序
int[] a3 = {3, 2, 5, 4, 1};
System.out.println(Arrays.toString(a3));
Arrays.sort(a3);
System.out.println(Arrays.toString(a3));
//一維數(shù)組數(shù)值檢索
int index1 = Arrays.binarySearch(a3, 4);
int index2 = Arrays.binarySearch(a3, -12);
int index3 = Arrays.binarySearch(a3, 8);
System.out.println(index1 + " " + index2 + " " + index3);
}
}
2 2 2 2 2 2 2 2 2 2
[2, 2, 2, 2, 2, 2, 2, 2, 2, 2]
[0, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0]
false
true
-------------
false
false
true
[[I@3e25a5, [I@19821f]
[[1, 2, 3], [4, 5, 6]]
[3, 2, 5, 4, 1]
[1, 2, 3, 4, 5]
3 -1 -6
Process finished with exit code 0
public static void main(String[] args) {
int[] x = { 1, 2, 3 };
for (int y = 0; y < 3; y++) {
System.out.println(x[y]);
// System.out.println("x["+y+"]="+x[y]); 打印效果 x[0]=1;
} // 那么這就是數(shù)組的第一個(gè)常見操作.遍歷
}
public static void
←上一篇: 拓展閱讀