数组:保存相同数据类型的元素,是一种引用类型
其内部是线性顺序排列,数组的长度不可改变
数组的声明和初始化:
数组的访问:int[] arr = new int[4];//默认值为0
int[] arr = new int[]{1, 3, 5, 7};//声明的同时初始化
通过索引(下标)直接访问,System.out.println(arr[1]);
通过arr.length来获得数组的长度
//数组的遍历
int[] arr = new int[4];
for(int i = 0; i < arr.length; i++){
arr[i] = (int)(Math.random()*100);
}
for(int i = 0; i < arr.length; i++){
System.out.println(arr[i]);
}
//数组的扩容及复制
int[] arr = {1, 2, 3, 4, 5};
int[] src = {6, 7, 8, 9};
arr = Arrays.copyOf(arr, arr.length + 1); //扩容,此时a是新的数组(重新创建a),内存地址重新分配
System.arraycopy(src, 1, arr, 3, 2);//arr = {1,2,3,7,8,0}
//数组的排序
int[] arr = {1, 32, 41, 19, 63, 17, 22};
Arrays.sort(arr); //升序排列
//冒泡排序
Random rand = new Random();
int[] sort = new int[10];
for(int i = 0; i < sort.length; i++){
sort[i] = rand.nextInt(100);
}
System.out.println("未排序数组:" + Arrays.toString(sort));
for(int i = 0; i < sort.length - 1; i++){
for(int j = 0; j < sort.length - 1 - i; j++){
if(sort[j] > sort[j+1]){
int t = sort[j];
sort[j] = sort[j+1];
sort[j+1] = t;
}
}
}
System.out.println("排序后的数组:" + Arrays.toString(sort));
//判断质数,开关的思想
Random rand = new Random();
int num = rand.nextInt(1000);
boolean flag = true; //开关,用于一次判断
for(int i = 2; i < num; i++){
if(num % i == 0){
flag = false;
break;
}
}
if(flag){
System.out.println(num + "是质数");
}else{
System.out.println(num + "不是质数");
}