数组初始化
- 赋值初始化
int[] smallPrimes ={1,2,3,4};
- 初始化一个匿名数组
for (int i : new int[]{1, 2, 3}) {
System.out.println(i);
}
- 直接使用new方法创建
int[] smallPrimes = new int[]{1, 2, 3};
- 指定长度不指定元素
int[] arrays1 = new int[]{}; //数组长度为0
int[] arrays = new int[10];//有10个元素,元素的指为0
数组拷贝
- 使用=进行拷贝
int[] arrays1 = new int[]{}; //length=1
int[] arrays = new int[10]; //length=10
arrays = arrays1; //将一个数组变量拷贝给另一个数组变量
System.out.println(arrays.length);//输出结果为1
System.out.println(arrays == arrays1); //true
使用=进行数组拷贝时,两个变量将引用同一个数组
2 使用Arrays.copyOf()拷贝一个新数组
int[] arrays = new int[10];
int[] lackyNumbers = Arrays.copyOf(arrays,2* arrays.length);
数组排序
使用Arrays.sort()方法
package net.xiang168.arrays;
import java.util.Arrays;
/**一个彩票抽奖程序
* core:每次抽取的都是下标,而不是实际的值。之后将下标指向尚未被抽取过的元素的值
* Created by Ordiy on 2015/11/14.
*/
public class ArraysDemo {
public static void main(String[] args) {
int k = 15;
int n = 50;
int[] numbers = new int[n]; //被抽取数据的数组
for (int i = 0; i < numbers.length; i++) {
numbers[i] = i + 1;
}
int[] result = new int[k];
for (int i = 0; i < result.length; i++) {
//创建一个0到 n-1的整数
int r = (int) (Math.random() * n);
//在随机数指向的下标上抽取元素
result[i] = numbers[r];
//将最后一个元素移动到刚抽取的位置
numbers[r] = numbers[n-1];
n--;
}
Arrays.sort(result);
for (int i = 0; i < result.length; i++) {
System.out.println(result[i]);
}
}
}