数组的创建、修改、遍历、转置
import java.util.Arrays;
public class ArrayTeat {
public static void main(String[] args) {
//一维数组的创建
int[] a = {0, 1, 2};//静态的初始化
int[] b = new int[3];//动态的初始化
b[0] = 0;
b[1] = 1;
b[2] = 2;
System.out.println(Arrays.toString(a));
//不能直接打印a System.out.println(a);出来的将会是一串乱码
System.out.println(Arrays.toString(b));
//copy拷贝
//浅拷贝
int[] c = a; //将a的数组给了c,所以c和a指向了同样的数组。
c[0] = 100; //将c里面的第一个变量改为10,a也会随之改变
System.out.println(a[0]);
//深拷贝
int[] d = new int[a.length];
for (int i = 0; i < a.length; i++) {
d[i] = a[i]; //把数组里的每一项一一对应过来了
}
d[0] = 0; //不会对a有影响
System.out.println(a[0]);
//fori
System.out.println("==============================");
for (int i = 0; i < b.length; i++) {
b[i] = i + 1; //修改
System.out.println(b[i]); //读取,展示修改是否有影响
}
//foreach
System.out.println("===================");
for (int x : b){
x = 1; //对于x来说是生效的;对于b来说是无效的
System.out.println(x);//读取,foreach的形式不能做修改
}
System.out.println(Arrays.toString(b));
System.out.println("=====================================================");
//二维数组
int[][] e = new int[2][2];//先声明后开辟空间
System.out.println(e[0][0]);
e[0][0] = 101;
e[0][1] = 102;
int[][] f = {{101, 102},{0,0}};
System.out.println(Arrays.toString(e[0]));
System.out.println(Arrays.toString(f[0]));
//已经初始化了,修改初始化的内容
//单个的改
e[1][0] = 201;
e[1][1] = 202;
//一起改
f[1] = new int[]{201, 202};
//遍历
System.out.println("=============================");
for (int i = 0; i < e.length; i++) { //查询 + 修改
for (int j = 0; j < e[i].length; j++) {
System.out.print(e[i][j] + " ");
}
System.out.println();
}
System.out.println("=======================");
for (int[] x : e) {//查询;foreacher是一个迭代器,不能接受数据,所以不能修改
for (int y : x) {
System.out.print(y + " ");
}
System.out.println();
}
//矩阵转置
//1 2 3
// 4 5 6
int[][] origin = {{1, 2, 3},{4, 5, 6}};
//转成
//1 4
//2 5
//3 6
//初始化目标
int[][] target = new int[3][2];
for (int i = 0; i < origin.length; i++) {
for (int j = 0; j < origin[i].length; j++) {
target[j][i] = origin[i][j];
}
}
for(int[] x : origin){
System.out.println(Arrays.toString(x));
}
for(int[] x : target){
System.out.println(Arrays.toString(x));
}
}
}