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(); } } }