一维数组
数组:(Array)最常见的一种数据结构,它是相同类型的用一个标识符封装到一起的基本类型数据序列或者对象序列。
创建一维数组
声明一维数组的语法格式有两种:
// 数据类型[] 数组名
type[] arrayName;
// 数据类型 数组名[]
type arrayNamep[];
推荐使用第一种,第一种代码可读性更好。数据类型可以是基本数据类型,也可以是引用数据类型。
下面是声明几个一维数组的案例
// 存储年龄的数组,类型为int整型
int[] age;
// 存储名字的数组,类型为String字符串型
String[] name;
// 存储价格的数组,类型为double浮点型
double[] prince;
注意:在声明数组变量的时候千万不能漏写[]
分配空间
声明数组,只是得到了一个存放数组的变量,使用new关键字来为数组分配内存空间
// 数组名 = new 数据类型[数组长度]
arrayName = new type[size];
age = new int[30];
name = new String[20];
price = new double[10];
当然了,我们可以声明分配一起使用
int[] arr = new int[5];
数组的下标是从0开始的。如果没有赋初值,那么默认int类型是0
数组使用
获取数组内容
// 获取数组下标为0的内容,因为是int类型,没有赋初值 默认0
System.out.println(arr[0]) // 0
// 设置数组的值
arr[0] = 1;
arr[1] = 2;
arr[2] = 3;
arr[3] = 4;
arr[4] = 5;
遍历数组
// 1 循环
int[] nums = new int[]{1,2,3,4};
for(var i : nums){
System.out.println(i);
}
// 2 循环
for(int i = 0; i < nums.length; i++){
System.out.println(a[i]);
}
// 3 表达式
Arrays.stream(nums).forEach(System.out::println)
声明一个数组,初始化10个1-100随机数
public class Ex4{
public static void main(String[] args){
Random rand = new Random();
Integer[] n = new Integer[10];
for(int i = 0; i < n.length; i++){
n[i] = rand.nextInt(100) + 1;
}
// 遍历输出
for (var e : n){
System.out.println(e);
}
}
}
排序
// 使用Arrays工具类,sort方法排序(默认升序)
Arrays.sort(n);
System.out.prinltln(Arrays.toString(n))
// 降序
Arrays.sort(n,(a,b) -> b - a );
System.out.println(Arrays.toString(n));
如果要求声明一个数组,数组种什么都可以放入,这个数组必须为Object数组
二维数组
二维数组,数组的数组
int[][] nums = new int[3][5]; // 第一个必须要有长度
double[][] d = new double[3][];
String[][] s = new String[3][];
// 定义时初始化
int[][] nu = new int[][]{{1,2,3},{2131,23,123}};
// 获取单个元素
System.our.println(nu[0][0]);
// 获取全部元素
int[][] nu = new int[][]{{1, 2, 3}, {2131, 23, 123}};
for (int i = 0; i < nu.length; i++) {
for (int j = 0; j < nu[i].length; j++) {
System.out.println(nu[i][j]);
}
}