JAVA 数组,(java核心技术 卷1)

时间:2023-02-16 12:20:21

一、java的数组声明方式:

    有2种,

int[] a;

int a[]; 

 int[] a = new int[100];

程序员喜欢第一种方式,因为类型int与变量名分开了。

 

   二、初始化

int[] smallPrime = {2,3,4,5,7,88}  这种语句不需要使用 “new”

还有一种匿名声明方式

new int[] {12,34,55,77,57,86}

匿名方式用于从新给数组赋值。

smallPrime = new int{44,32,54,65,67}

  三、数组下标

这个数组的下标是从(0--99),而不是从(1--100)

比如给数组赋值

int[] a = new int[100];

for(i=0;i<100;i++){

  a[i] = i;  // fills the array with 0 to 99

  四、遍历数组:

有两种:

for(int i <0;i<a.length;i++){

  System.out.println(a[i]);

java5以后添加了一种新的方式

for(int elemnet:a){

  System.out.println(element);

}

第二种方式举例,第二种方式最让人喜欢,更简洁,更不易出错,不必为下标的起始值与终止值而操心

for(int i : a){

System.out.println(i)

}

 

五、数组拷贝

拷贝是指两个变量同时引用一个数组,就是拷贝的数组在内存的指针。

int[] smallPrimes = {2,3,5,7,11,13}

int luckyNumber = smallPrimes;

luckyNumber[5] = 12; //这个时候,之前的smallPrimes的第6个元素也是12.   smallPrimes[5] = 12

如果需要把数组中的所有值都拷贝到一个新的数组中,需要使用 Arrarys.copyTo

int[] copiedLuckyNumbers = Arrays.copyTo(luckyNumbers,luckyNumbers.length);

这个方法还常常用于扩展数组,

int[] copiedLuckyNumbers = Arrays.copyTo(luckNumbers.2*luckNumbers.length);

多出来的元素,如果是int,则填充为0,如果是布尔,则为false,如果小于原始数组,则只拷贝前面的元素