一维数组:
1.1数组简介:
保存一组相同数据类型的数的集合
特性:
- 数组是引用数据类型
- 长度一经确定不能改变
- 数组里面存储的是数组元素(Element)(数组元素的类型可以是任意类型)
- 数组是一块连续的内存空间
- 数组的缩引由0开始
1.2数组声明
int[] scores;//数组是引用类型 引用类型资至少占两块内存
int scores2[];//等价(但不推荐使用)
double[] arr1;
float[] arr2;
String[] arr3;
1.3数组初始化
1.数组初始化,长度为6的数组 0是int默认值;double 0.0;char “ ” boolean false
scores=new int[6];
// 2. 长度就是4
int[] arr = new int[]{6,7,8,9};
// 3.
int []arr1 = {12,3,4,5};
l 获得数组元素内容
System.out.println(Arrays.toString(scores));
l 对数组元素重新赋值
int[] arr ={1,2,3,4,5};
int[] arr1=arr;//数组的赋值,引用的赋值
int[] arr ={1,2,3,4,5};
int[] arr1=arr;
// 值赋值
int[] arr2 = new int[arr.length];
for (int i=0;i<arr.length;i++){
arr2[i]=arr[i];
}
l 遍历数组元素内容
for (int i=0;i<arr2.length;i++){
System.out.println(arr2[i]);
}
//增强for循环遍历
for(float a : arr2){
System.out.println(a);
l 动态录入数据存储数组
int num = sc.nextInt();
//初始化了一个长度为学生人数的数组
int[]scores = new int[num];
//给数组元素赋值
for (int i=0;i<num;i++){
System.out.println("录入第"+(i+1)+"个人学生成绩");
scores[i]=sc.nextInt();
}
l 获得数组元素最值
// 求最大值最小值
int[] sort = {66,9,12,54,3,5,7,99};
int max =0;
int min = 0;
for (int i = 1; i <sort.length; i++) {
if( sort[max]<sort[i]) {
max = i;
}
if( sort[min]>sort[i]) {
min = i;
}
}
System.out.println(sort[max]);
System.out.println(sort[min]);
}
l 复制数组的元素到一个新数组中
//数组扩容
int[] arr2 = Arrays.copyOf(arr1, arr1.length*2);
System.out.println(Arrays.toString(arr2));
//值的复制
int[] arr3 = Arrays.copyOf(arr1,arr1.length);
l 比较两个数组数据是否一致
//判断两个数组的数组元素是否一一对应
boolean boo = Arrays.equals(arr1,arr2);
//引用类型使用双等号比较的是地址空间是否相等
System.out.println(arr1==arr2);
l 对数组元素排序
//对数组进行排序 按自然顺序排序
Arrays.sort(arr1);
Arrays.sort(str);
System.out.println(Arrays.toString(arr1));
System.out.println(Arrays.toString(str));
二维数组
数组元素是一维数组
声明:int[][]a;
初始化二维数组:
int(数据类型)[][] 变量名 = new 数据类型[m][n];
其中:m表示这个二维数组有多少个一维数组
n表示每一个一维数组中有多少个元素
例如: int[][] arr = new int[3][2];
定义了一个二维数组arr,有3个一维数组元素,每个一维数组里面有2个元素
int(数据类型)[][] 变量名= new 数据类型[m][];
这次没有直接给出一维数组的元素个数,可以动态的给出
例如:int[][] arr = new int[3][];
arr[0]= new int[2];arr[1]= new int[3];arr[2]= new int[1];
数据类型[][]变量名 = {{元素},{元素},{元素}};
例:int[][] arr = {{1,2,3},{1,2},{4,5,6}};
Arrays
l 操作数组元素的工具类。在java.util.Array 使用此类,需要导入此类所在的包。
Arrays.toString(数组名); 将数组内容转换成字符串进行输出
- Arrays.copyOf(源数组,新数组长度); 复制数组元素
- Arrays.equals(数组1,数组2);
Arrays.sort(数组)---->字面量类型数组 默认升序