数组:
1)是一种数据类型(引用类型)
2)相同数据类型元素的集合
3)数组的定义:
int[] arr = new int[10];
4)数组的初始化:—初始化数组中的数据
int[] arr = new int[4]; //0,0,0,0
int[] arr = {1,4,5,8}; //1,4,5,8
int[] arr = new int[]{1,4,5,8}; //1,4,5,8
int[] arr;
arr = {1,4,5,8}; //编译错误,此方式只能声明同时初始化
arr = new int[]{1,4,5,8}; //正确
5)数组的访问:—访问的是数组中的数据
5.1)通过(数组名.length)可以获取数组的长度(元素的个数)
int[] arr = new int[5];
System.out.println(arr.length); //5
5.2)通过下标/索引来访问数组中的元素
下标从0开始,最大到(数组的长度-1)
int[] arr = new int[3];
arr[0] = 100; //给arr第1个元素赋值为100
arr[1] = 200; //给arr第2个元素赋值为200
arr[2] = 300; //给arr第3个元素赋值为300
//arr[3] = 400; //运行时,会发生数组下标越界异常
System.out.println(arr[arr.length-1]); //输出最后一个元素的值
6)数组的遍历: 从头到尾走一遭
int[] arr = new int[10];
for(int i=0;i<arr.length;i++){ //遍历arr数组
arr[i] = 100; //给每个元素都赋值为100
System.out.println(arr[i]); //输出每个元素的值
}
7)数组的复制:
7.1)System.arraycopy(a,1,b,0,4);
a:源数组 1:源数组的起始下标 b:目标数组
0:目标数组的起始下标 4:要复制的元素个数
7.2)int[] b = Arrays.copyOf(a,6);
a:源数组 b:目标数组 6:目标数组的长度6
数组的扩容: a = Arrays.copyOf(a,a.length+1);
8)数组的排序:
8.1)Arrays.sort(arr); //对arr进行升序排列
常见的排序算法:冒泡排序,快速排序,插入排序
求一组数中的最大值/最小值算法:
int[] arr = new int[10];
for(int i=0;i<arr.length;i++) {
arr[i] = (int)(Math.random()*100);
System.out.println(arr[i]);
}
int max = arr[0]; //假设第一个元素为最大值
for(int i=1;i<arr.length;i++) { //遍历每个元素
if(arr[i]>max) { //若剩余元素大于max
max = arr[i]; //将max修改为较大的值
}
}
System.out.println("最大值为:"+max);
int[] arr = new int[10];
for(int i=0;i<10;i++){ //遍历arr数组
arr[i]:代表arr中的每一个元素
}
int[] arr = new int[10];
for(int i=0;i<10;i++){ //遍历arr数组
arr[i] = 100; //给每个元素都赋值为100
System.out.println(arr[i]); //输出每个元素的值
}
int[] arr = new int[3]; //0,0,0
//给第2个数赋值为100
arr[1] = 100;
arr[0]--------表示arr中的第1个元素(int类型)
arr[1]--------表示arr中的第2个元素(int类型)
arr[2]--------表示arr中的第3个元素(int类型)
int a = 0;
int b = 0;
int c = 0;
//给第2个数赋值为100
b = 100;
//声明整型数组a,包含5个元素,
//每个元素都是int类型,默认值为0
int[] a = new int[5];
//声明浮点型数组d,包含10个元素,
//每个元素都是double型,默认值为0.0
double[] d = new double[10];
//声明布尔型数组b,包含26个元素,
//每个元素都是boolean型,默认值为false
boolean[] b = new boolean[26];
int和int[]是两种完全不同的数据类型
int是一种数据类型,int[]也是一种数据类型
int a; //声明整型变量a
int[] a; //声明整型数组变量a
随机生成10个1000以内的数进行排序
int[] arr = new int[10];
System.out.println("降序前");
for(int i=0;i<arr.length;i++) {
arr[i] = (int)(Math.random()*1000);
System.out.print(arr[i]+" ");
}
System.out.println();
System.out.println("降序后");
arr = Arrays.copyOf(arr,arr.length+1);
Arrays.sort(arr); //默认为升序
int i=0;i<arr.length;i++ //升序
for(int i=arr.length-1;i>0;i--) {
System.out.print(arr[i]+" ");
}