1、创建数组
(1)创建一个数组,需要在声明时指定长度,并且通过new来完成数组对象创建操作。
// 声明一个int型的数组
int[]a = new int[6];
// 声明一个字符串数组
string[]b = new string[5]
// 声明一个数组,同时完成赋值操作
int[]c = {1,3,9,4,6,7,9};
string[]d = {a,b,"hello","123"}
(2)创建空数组,数组初始化时,会在存储空间中添加默认值,整型默认值是0,浮点型默认值是0.0,布尔型默认是false,字符串默认是空字符,引用数据类型默认是null。
(3)二维数组中,数组的长度代表数组中一维数组的个数,第二个数则代表一维数组中存放元素的个数。
//声明一个二维数组
int[][]a=new int[3][3];
//创建二位数组并赋值
int[][]c= {{1,2,3},{2,4,5,6,7},{4,5,6,7}};
二维数组赋初值的时候,数组长度可以不一致,int[3][]
,表示存3个1维数组,但是每个1维数组长度不一定相等。
int[][]b=new int[3][];
2、输出数组
(1)数组不能直接打印输出,直接打印输出的结果是数组在内存中的地址。
int[][]a=new int[3][3];
int[]b = {1,3,9,4,6,7,9};
System.out.println("a的长度是:"+a);//输出结果是数组a的内存地址
System.out.println(b);//输出结果是数组b的内存地址
(2)通过数组.length
可以获取数组的长度。
int[]a = new int[6]
string[]b = {a,b,"hello","123"}
System.out.println("a的长度是:"+a.length);//输出结果是6
System.out.println("b的长度是:"+b.length);//输出结果是4
(3)想要输出数组中的单个元素,可以使用下标,注意下标从0开始。
string[]b = {a,b,"hello","123"}
System.out.println(b[0]);//输出结果为a
System.out.println(b[1]);//输出结果为b
System.out.println(b[3]);//输出结果为123
输出二维数组中的单个元素。
int[][]c= {{1,2,3},{2,4,5,6,7},{4,5,6,7}};
System.out.println("二维数组c第一行第三列的值是:"+c[0][2]);//输出结果为3
System.out.println("二维数组c第二行第一列的值是:"+c[1][0]);//输出结果为2
(4)如果要输出数组中的所有元素,则需要遍历
int[]a = new int[6];
int[]b = {1,3,9,4,6,7,9};
//方法一:for循环遍历数组下标
for(int index=0;index<b.length;index++) {
System.out.print(b[index]+"");
}
//注意,没有赋值的数组,默认元素值是0
for(int index=0;index<a.length;index++) {
System.out.print(a[index]+"");
}
//方法二:直接遍历元素的值,用到foreach增强型for循环
for(int i:b) {
System.out.print(i);
}
//没有赋值的数组,结果仍然是0
for(int i:a) {
System.out.print(i);
}
遍历二维数组
int[][]b=new int[3][];
int[][]c= {{1,2,3},{2,4,5,6,7},{4,5,6,7}};
//方法一:for循环遍历
//外层循环遍历每一个一维数组,也就是每一行
for(int row=0;row<c.length;row++) {
// 内层循环遍历每一个一维数组,也就是一列
for(int column=0;column<c[row].length;column++) {
System.out.println(c[row][column]+"");
}
System.out.print(c[row]);
}
//方法二:foreach遍历
for(int[] A:c) {
System.out.println(A);
for(int i:A) {
System.out.print(i+"");
}
}
//没有定义一维数组长度的时候,二维数组中的遍历输出
for(int[]A:b) {
System.out.println(A);
}
3、数组增删改操作
增,数组长度由于在初始化声明时已经固定了,所以没有办法插入一个新元素。如果是一个空数组,可以通过下标放入元素。
int[]a = new int[6];
//通过直接赋值放入元素
a[0]=12;
a[1]=20;
删,数组长度由于在初始化声明时已经固定了,所以没有办法删除数组中的元素。
改,更新数组元素的值。
int[]b = {1,3,9,4,6,7,15};
//通过直接赋值修改
b[0]=12;
b[1]=20;
b[8]=18;//b的长度是7,如果增加第8个元素,则运行代码时会报错
for(int i:b) {
System.out.print(i);
}
二维数组赋值
//不能给已经初始化完成的数组直接用a[0]= {1,2,3}这种方式赋值,只能对一维数组中的单个元素赋值
int[][]a=new int[3][3];
a[0][0]=1;
a[0][1]=2;
a[0][2]=3;
//输出赋值后的数组a
for(int[]A:a) {
System.out.println(A);
for(int i:A) {
System.out.print(i+"");
}
}
4、Arrays类
Arrays类中有一些常用的方法,可直接操作数组。
(1)批量修改数组中的值可使用(Arrays.fill())。
//将数组a的值都修改为8
Arrays.fill(a, 8);
for(int i:a) {
System.out.print(i);
}
//将数组b的值都修改为9
Arrays.fill(b, 9);
for (int u : b) {
System.out.print(u);
}
(2)想要打印输出数组可使用(Arrays.toString())将数组转为字符串,然后打印输出。
// 直接打印数组
String[] Arrray = new String[]{"a","b","c","d","e"};
String ArrayString = Arrays.toString(Arrray);//将数组转为字符串
System.out.println(ArrayString);//输出结果为[a, b, c, d, e]
(3)数组元素排序,可以使用(Arrays.sort())。
// 数组元素排序
int[] i = {4,9,0,5,1};
Arrays.sort(i);
System.out.print(Arrays.toString(i));//输出结果为[0, 1, 4, 5, 9]
(4)使用(Arrays.aslist())方法将数组转为链表。注意:不能使用基本数据类型的数组用aslist进行转换,这样的话会将整个数组作为一个元素存到list里面去。
// 数组转链表
Integer[] aa = { 1, 2, 3, 5, 4, 6, 9, 7, 8, 0 };
List<Integer> listaa = Arrays.asList(aa);
System.out.println("aslist转链表:" + listaa);//输出[1, 2, 3, 5, 4, 6, 9, 7, 8, 0]
// 不能使用基本数据类型的数组用aslist进行转换
int[] bb = { 1, 2, 3, 5, 4};
List<int[]> listbb =Arrays.asList(bb);
System.out.println("bslist转链表:" + listbb);//输出[[I@15db9742]