Java笔记(2):数组、三元运算符
数组
声明数组变量
| 1 | dataType[] array; // 首选的方法 | 
创建数组
| 1 | array = new dataType[arraySize]; | 
创建数组时做了两件事:
- 使用dataType[arraySize]创建了一个数组。
- 把新创建的数组的引用赋值给变量 array。
我们也可以讲声明与创建数组合二为一:
| 1 | dataType[] array = new dataType[arraySize]; | 
还可以使用下面方法来创建数组:
| 1 | dataType[] array = {value0, value1, ..., valuek}; | 
数组拷贝
| 1 | int[] firstArray = {10,20,30,40,50}; | 
这种拷贝方式会将两个变量引用到同一个数组。
如果我们希望的是将一个数组的所有值拷贝到一个新的数组中去,就要使用Arrays类的copyOf方法:
| 1 | int[] secondArray = Arrays.copy0f(firstArray, firstArray.length); | 
第二个参数为新数组的长度,我们通常用此方法来增加数组大小:
| 1 | int[] secondArray = Arrays.copy0f(firstArray, 2 * firstArray.length); | 
当新数组长度小于原数组时,则只拷贝前面的值,后面的值会被裁切丢弃。
数组排序
Arrays类中给我们提供了一种排序的方法–快速排序QuickSort。
| 1 | int[] a = new in[10000]; | 
这种排序方法可以满足大部分排序的需求,当然你也可以选择自己写,那就不在本文的范畴之内了。
另外Arrays类中还提供了别的方法,有兴趣的可以自行查阅。
可变参数
允许调用方法时传入不定长度的参数,实质上是基于数组的实现。
例:构造输出最大的数字的方法。
| 1 | public class DemoVarargs { | 
三元运算符
| 1 | x?y:z | 
当x==true,则结果为y,否则结果为z。
注意点:
| 1 | Object o = true ? new Integer(1) : new Double(2.0); | 
三元运算符运行的左右两边需要是同一类型,于是int的包装类就自动转换为double的包装类。这与if else有所区别,因此我们在使用三元运算符时需要注意。
