【java】数组

参考资料:
http://www.runoob.com/java/java-array.html
http://developer.51cto.com/art/200906/128274.htm
https://docs.oracle.com/javase/7/docs/api/java/util/Arrays.html----oracle官方
http://mouselearnjava.iteye.com/blog/1985990---asList源码解读
http://blog.csdn.net/lzm18064126848/article/details/53823610---asList陷阱
http://brightmoon.blog.51cto.com/8128325/1317517---具体例子

相关文章:
http://blog.csdn.net/lzm18064126848/article/details/53785743---Java中Arrays类的两个方法:deepEquals和equals
http://blog.csdn.net/lzm18064126848/article/details/53785491---这个主要是用于在类中判断重写equals()
http://blog.csdn.net/lzm18064126848/article/details/53784223---System.arraycopy

1.
一维:
dataType[] arrayRefVar = new dataType[arraySize];
二维:
type arrayName = new typ[arraylenght1][arraylenght2];
....n维


2.
初始化:
动态初始化:数组定义与为数组分配空间和赋值的操作分开进行;
静态初始化:在定义数字的同时就为数组元素分配空间并赋值;
默认初始化:数组是引用类型,它的元素相当于类的成员变量,因此数组分配空间后,每个元素也被按照成员变量的规则被隐式初始化。

循环可以使用for或者是foreach
数组作为函数参数、也可以作为返回值



3.
Arrays 类    
java.util.Arrays 类能方便地操作数组,它提供的所有方法都是静态的。
具有以下功能:
转换成List:通过asList方法。   
查找数组元素:通过 binarySearch 方法能对排序好的数组进行二分查找法操作。
复制数组: copyOf及copyOfRange方法 
String[] names2 = { "Eric", "John", "Alan", "Liz" };  
    //[Eric, John, Alan]  
    String[] copy = Arrays.copyOf(names2, 3);  
    //[Alan, Liz]  
    String[] rangeCopy = Arrays.copyOfRange(names2, 2,names2.length); 
给数组赋值:fill()
对数组排序:sort()
比较数组:equals()
打印数组内容: 
一维数组:toString()
二维数组:deepToString()  对于高维数组equals也是使用deepequals





数组为空和数组长度为0的区别


两者如果在一句代码中,则要先判断是否为空,否则可能会出现空指针异常。
例子:
if(array == null || 0 == array.length) {...}   // 这种写法正确,因为执行到 “0 == array.length”则说明数组不为空,不会产生空指针异常。
if(0 == array.length || array == null) {...} // 这种写法可能会产生空指针异常。

例:
int[] n;        //只声明了数组变量;                              
int[] nil = null;  //声明数组变量,并赋值 null,nil是一个数组类型的空引用,不指向任何对象;                             
int[] zero = new int[0];  //声明并创建一数组对象,长度是0;
对于上面三条语句,一个比一个做的动作多,系统占用也是后面的多:
语句一变量还没初始化,打印 n 会出错:“可能尚未初始化变量 n”;
语句二虽已初始化,打印“nil.length”会出现异常:NullPointerException;
语句三打印“nil.length”是0,数组内还没有元素。
假设一个方法返回一个数组,如果它返回null,则调用方法必须先判断是否返回null,才能对返回数组进一步处理,而如果返回空数组,则无须null引用检查。
鉴于此,返回数组的方法在没有结果时我们通常返回空数组,而不是null,这样做对于函数调用者的处理比较方便。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值