数组
什么是数组:相同数组类型的集合,相当于容器
- 声明数组
int[] arr = new int[5];
System.out.println(arr);//在数组声明的时候已经默认初始化
//数据类型[] 数组名 = new 数据类型[数组长度]
初始化
动态初识化:在数组声明的时候已经默认初始化
int[] arr = new int[5];
静态初始化
```java
int[] arr1 = {1,2,3};
int[] arr2 = new int[]{1,2,3};
```
数组元素的访问
数组长度length
通过数组的下标(索引)访问数组元素
数组的下标从0开始,到length-1结束
动态初识化数组默认值
byte、short、long、int:0
float、double:0.0
String:null
Boolean:false
char:空格/u0000
数组元素的赋值
数组名[下标] = 值;
数组的遍历
/*
* 练习录入键盘一个班10个学生的考试成绩,计算平均分
*/
double[] salary = new double[10];
Scanner scan = new Scanner(System.in);
double s = 0;
for (int i = 0; i <salary.length; i++) {
System.out.println("请输入"+(i+1)+"学生成绩:");
salary[i]=scan.nextDouble();
System.out.println(salary[i]);
s +=salary[i];
}
System.out.println("平均分:"+s/10);
数组的工具类
Arrays.tostring(数组名)
//数组的工具类,将这个double数组转换为string类型字符串
String a = Arrays.toString(salary);
获取随机数的数组中最大值和最小值
int[] arr =new int[10];
//遍历数组使用1-100随机赋值
for(int i = 0; i<arr.length; i++){
arr[i] = (int) (Math.random()*100+1);
}
System.out.println(Arrays.toString(arr));
//求最大值
//定义一个最大值
int max = arr[0];
for(int i=0; i<arr.length; i++){
if(max<arr[i]){
max = arr[i];
}
}
System.out.println(max);
//获取最小值
int min = arr[0];
for(int i=0;i<arr.length;i++){
if(min>arr[i]){
min = arr[i];
}
}
System.out.println(min);
数组的复制
- system.arraycopy
System.arraycopy(src, srcPos, dest, destPos, length);
src:原数组
srcPos:原数组开始位置
dest:目标数组
destPos:目标数组开始位置
length:截取长度
int[] arr1 ={1,2,3,4,5};
int[] arr2 = new int[5];
//用system.arraycopyof给arr2赋值
//把原数组的一段截取出来复制给目标数组
System.arraycopy(arr1, 1, arr2, 2, 2);
System.out.println(Arrays.toString(arr2));
- Arrays.CopyOf扩容
/*创建一个长度为10的数组使用随机数赋值
* 找出数组元素中的最大值并将最大值放在新数组的最后一位
* 使用Arrays.copyof
*/
int[] arr2 =new int[10];
for(int i=0; i<arr2.length;i++){1
arr2[i]= (int) (Math.random()*100+1);
}
System.out.println(Arrays.toString(arr2));
int max = arr[0];
for (int i = 0; i < arr2.length; i++) {
if(max<arr2[i]){
max = arr2[i];
}
}
System.out.println(max);
int[] arr3 = new int[11];
arr3 = Arrays.copyOf(arr2, arr2.length+1);
arr3[arr3.length-1] = max;
System.out.println(Arrays.toString(arr3));
- 数组的排序
冒泡排序:相邻的两个元素相互比较,把较大或较小的值放到后一位。
/*
* 冒泡
*/
int[] arr = new int[10];
for (int i = 0; i < arr.length; i++) {
arr[i] = (int) (Math.random()*100+1);
}
System.out.println(Arrays.toString(arr));
//冒泡排序
for (int i = 0; i < arr.length; i++) {
//外层循环
for (int j = 0; j < arr.length-i-1; j++) {
//内层循环控制每一轮次数
int temp;//用于数据交换
if(arr[j]<arr[j+1]){
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
System.out.println(Arrays.toString(arr));