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
有所区别,因此我们在使用三元运算符时需要注意。