java数组(一)

java数组(一)

数组简介

数组是一种数据结构,用来存储同一类型值的集合。

创建数组范例:

int[] a = new int[100];

可以使用两种形式声明数组:

int [] a;   //第一种
int a[];    //第二种   

但是大部分人喜欢使用第一种风格,因为它将类型int与变量名分开了。

数组下标从0~99(不是1~100),创建数组后就可以给数组元素赋值。

数组遍历

循环遍历赋值:

int [] a = new int[100];
for (int i=0; i<100; i++)
    a[i] = i;

注意:创建一个数字数组时,所有元素都初始化为0;Boolean数组的元素会初始化为false;对象数组的元素则初始化为一个特殊值null,这表示这些元素还未存放任何对象,如果希望这个数组包含空串,可以为元素指定空串。

要想获取数组中的元素个数,可以使用array.length

for (int i=0; i<a.length ; i++)
    System.out.println(a[i]);

如果你在遍历的时候尝试去改变数组大小,会发现报错,因为一旦创建了数组,就不能再改变它的长度。如果需要再运行过程中扩展数组的大小,就需要使用另外一种数据结构-数组列表(array list).

for each循环

上面都是使用的for循环,都是根据下标来遍历。java还有一种很强大的循环,for each循环。和python中的迭代很类似。

//语法
for (variable : collection) statement
// 例子
for (int element:a)
    System.out.println(element);

如果不希望遍历数组中每个元素,使用传统的下标for循环是最好的选择。

数组初始化及匿名数组

创建数组对象并同时赋初始值,以下这种方式不需要使用new。

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

初始化一个匿名数组

for (int element: new int[] {17,18,19,20,21})
            System.out.println(element);

这种语法形式可以在不创建新变量的情况下重新初始化一个数组,以上面的例子说明:

smallPrimes = new int {17,18,19,20,21} ;
for (int element:smallPrimes)
    System.out.println(element);

这种语法其实是下列语句的简写形式:

int[] anonymous = {17,18,19,20,21};
smallPrimes = anonymous;

注意:

在java中,允许数组长度为0。在编写一个结果为数组的方法时,如果碰巧结果为空,这种语法方式就很有用。

new elementType[0]
//数组长度为0和null是两个不同的概念。
数组拷贝

在java中允许将一个数组变量拷贝给另一个数组变量。

int luckyNumbers = smallPrimes;
luckyNumber[5] = 13;
//luckyNumbers和smallPrimes这两个变量引用同一个数组。

如果希望将一个数组的值拷贝到一个新的数组中,要使用Arrays类的copyOf方法:

int[] copiedLuckNumbers = Arrays.copyOf(luckyNumbers,luckyNumbers.length);
//增加数组的大小很好用
luckyNumbers = Arrays.copyOf(luckyNumbers,2 * luckyNumbers.length);

如果数组元素是数值型,那么多余的元素会被赋值0;如果数组元素是布尔型,会被赋值为false。相反,如果长度小于原始数据的长度,则只拷贝最前面的数据元素。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值