数组
定义方式
int[] nums;
静态初始化
int[] nums1 = {1,2,3,8,5,2};
动态初始化
int[] nums2 = new int[5]; //表示5个长度的int数组
foreach
这种方式简单更适合用来打印输出,但是如果要操作某一个数的话是不好用的
for (int i:nums1) { // foreach nums1.for 这种方式简单更适合用来打印输出,但是如果要操作某一个数的话是不好用的
System.out.println(i);
}
多维数组
int[][] arrys = {{1,2},{3,4},{5,6},{7,8}};
for (int[] arry : arrys) { //arrays.for
for (int i : arry) { //array.for
System.out.print(i+"\t");
}
System.out.println();
}
稀疏数组
int[][] array = new int[11][11];
array[1][2] = 1;
array[2][3] = 2;
//打印稀疏数组
for (int[] ints : array) {
for (int anInt : ints) {
System.out.print(anInt+"\t");
}
System.out.println();
}
用一个数组保存稀疏数组
//首先要获取有效值的个数
int sum = 0;
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[i].length; j++) {
if (array[i][j] != 0){
sum++;
}
}
}
System.out.println("有效值的个数:" + sum); //总共存放sum个有效值的
int[][] array2 = new int[sum+1][3]; // sum+1 是因为第一行用来存放上面稀疏数组共有11行11列sum个有效值 3是存放 行、列、值
array2[0][0] = array.length; // array共11行
array2[0][1] = array[0].length; // array共11列
array2[0][2] = sum; // array共sum个有效值
然后给array2存放有效值
int num = 0;
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[i].length; j++) {
if (array[i][j] != 0){
num++;
array2[num][0] = i; //行
array2[num][1] = j; //列
array2[num][2] = array[i][j]; //值
}
}
}
输出验证是否正确
for (int i=0;i<array2.length;i++){
System.out.println("第"+i+"个值");
System.out.println("行:"+array2[i][0]);
System.out.println("列:"+array2[i][1]);
System.out.println("值:"+array2[i][2]);
}
根据保存的数组将整个稀疏数组还原
int[][] array3 = new int[array2[0][0]][array2[0][1]];
//在array2里第一个存放的是原稀疏数组共 多少行array2[0][0]] 多少列[array2[0][1]
//以及几个有效值array2[0][0]][array2[0][2]
//还原稀疏数组
for (int i = 1; i < array2.length; i++) {
array3[array2[i][0]][array2[i][1]] = array2[i][2];
}
//打印还原的稀疏数组 检查是否正确
for (int[] ints : array3) {
for (int anInt : ints) {
System.out.print(anInt+"\t");
}
System.out.println();
}
Arrays类
int[] a = {1,2,65,2,4,5,89};
System.out.println(a);
System.out.println(Arrays.toString(a));
Arrays.fill(a,0,3,7);//给0-3之间的数替换成7 包含0但是不不包含3
System.out.println(Arrays.toString(a));
Arrays.fill(a,5); //全部替换成5
System.out.println(Arrays.toString(a));
int[] b = {1,2,65,2,4,5,89};
System.out.println(Arrays.toString(b));
System.out.println(Arrays.toString(sort(b))); //数组修改的是指针这里虽然是调用的方法但是已经对数组b排序完成
System.out.println(Arrays.toString(b)); //所以这里数组b在输出也已经是排序好的状态
//Arrays.sort(b); 这是Arrays类提供的排序方法
//System.out.println(Arrays.toString(b));
//冒泡排序
public static int[] sort(int[] b){
int t = 0;
Boolean flag = false;
for (int i = 0; i < b.length; i++) {
for (int j = 0; j < b.length-1-i; j++) {
if (b[j]>b[j+1]){
t = b[j];
b[j] = b[j+1];
b[j+1] = t;
flag = true;
}
}
if (flag==false){
break;
}
}
return b;
}
标签:int,array2,09,System,数组,println,array,out
From: https://www.cnblogs.com/LiuWTaoRecord/p/17765297.html