public class ArrayDemo01 { public static void main(String[] args) { int[] nums; // 1.定义 nums=new int[10]; // 2.建立一个数组 // 3.给数组元素赋值 nums[0]= 1; // 获取数组长度 arrays.length System.out.println(nums.length); } }
public class ArrayDemo02 { public static void main(String[] args) { // 静态初始化 建立+赋值 int [] a={1,2,3,4,5,6,7,8}; Man[] men={new Man(),new Man()}; // 动态初始化:包含默认初始化 int[]b=new int[10]; b[0]=10; } } public class Man { }
``java
public class ArrayDemo03 { public static void main(String[] args) { int[] arrays={1,2,3,4,5}; //打印所有数组元素 for (int i=0;i<arrays.length;i++){ System.out.println(arrays[i]); } System.out.println("===================="); //加强型for循环 //arrays.for 自动生成加强型for循环 //JDK1.5,没有下标,取不到下标 for (int array : arrays) { System.out.println(array); } } }
public class ArrayDemo04 { public static void main(String[] args) { int[][]array={{1,2},{3,4},{5,6}}; int[] a={1,2,3,4,231,15,67,121}; //打印数组元素 System.out.println(a);// [I@1b6d3586 System.out.println(Arrays.toString(a)); // [1, 2, 3, 4, 231, 15, 67, 121] Arrays.sort(a); //数组进行排序 System.out.println(Arrays.toString(a)); // [1, 2, 3, 4, 15, 67, 121, 231] } }
import java.util.Arrays; public class ArrayDemo05 { public static void main(String[] args) { int[] a={123,6,5432,31,524,9876}; int []sort=sort(a); System.out.println(Arrays.toString(sort)); //[9876, 5432, 524, 123, 31, 6] } //冒泡排序 //1. 比较数组中,两个相邻的元素,若是前一个比后一个大,就交换两者位置 //2. 每一次比较都会产生一个最大或最小的数字 //3. 下一轮,能够少一次排序! public static int[] sort(int[]array){ int temp; boolean flag =false; //经过flag标识位减小没有意义的比较 //外层循环,判断要走多少次 for (int i = 0; i < array.length; i++) { for (int j = 0; j < array.length - 1-i; j++) { if (array[j+1]>array[j]){ temp=array[j]; array[j]=array[j+1]; array[j+1]=temp; flag=true; } } if (!flag){ break; } } return array; } }
import java.util.Arrays; public class ArrayDemo06 { public static void main(String[] args) { //1.建立一个二维数组 11*11 0:没有棋子 1:黑棋 2:白棋 int [][]array1=new int [11][11]; array1[1][2]=1; array1[2][3]=2; System.out.println("原始数组:"); //输出原始的数组 for (int[]ints:array1){ for (int anInt:ints){ System.out.print(anInt+"\t"); } System.out.println(); } //转换为稀疏数组 //获取有效值的个数 int sum=0; for (int i=0;i<11;i++){ for (int j = 0; j < 11; j++) { if (array1[i][j]!=0){ sum++; } } } //2. 建立一个稀疏数组 int[][]array2=new int[sum+1][3]; array2[0][0]=11; array2[0][1]=11; array2[0][2]=sum; //遍历二维数组,将非零的值,存放到稀疏数组中 int count=0; for (int i=0;i<array1.length;i++){ for (int j = 0; j < array1[i].length; j++) { if (array1[i][j]!=0){ count++; array2[count][0]=i; array2[count][1]=j; array2[count][2]=array1[i][j]; } } } //输出稀疏数组 System.out.println("稀疏数组:"); for (int[]ints:array2){ for (int anInt:ints){ System.out.print(anInt+"\t"); } System.out.println(); } //还原稀疏数组 //1.读取稀疏数组 int[][]array3=new int[array2[0][0]][array2[0][1]]; //2.给其中的元素还原它的值 for (int i = 0; i < array3.length; i++) { Arrays.fill(array3[i],0); } for (int i = 1; i < array2.length; i++) { array3[array2[i][0]][array2[i][1]]=array2[i][2]; } System.out.println("还原稀疏数组:"); for (int[]ints:array3){ for (int anInt:ints){ System.out.print(anInt+"\t"); } System.out.println(); } } }