Java基礎-一維陣列
阿新 • • 發佈:2021-06-29
一維陣列Array
陣列參考文件:https://www.cnblogs.com/yinzhengjie/p/8719728.html
陣列記憶體儲的都是相同的資料型別
陣列的基礎內容
- 陣列的動態、靜態初始化
靜態的陣列初始化—》在陣列定義時,就賦予了初始值
-
陣列的預設初始化:陣列是引用型別,它的元素相當於類的成員變數,因此陣列分配空間後,其中的每個元素也按照成員變數的規則被隱式初始化
-
陣列的元素遍歷
陣列常見異常
陣列越界
import java.util.Arrays; public class ArrayTest { public static void main(String[] args) {// 靜態初始化 int [] arr1 = {1,2,3,4}; // 動態初始化 int [] arr2 = new int[10]; for (int i =0;i<10;i++){ arr2[i]= i ; } for (int i =0;i<arr2.length;i++){ System.out.println(arr2[i]); } int[][] arr4={{3,5},{6,7},{8,9}};//查詢陣列中的字串 int a= Arrays.binarySearch(arr4[0],3); int b =Arrays.binarySearch(arr1,7); int c =Arrays.binarySearch(arr1,34); System.out.println(a); System.out.println(b); System.out.println(c); //比較兩個陣列是否相等 int[] arr3= new int[]{3,3,3,5,9};int[] arr5= new int[]{3,3,3,5,9}; Boolean aaa = Arrays.equals(arr5,arr3); System.out.println(aaa); //插入填充陣列元素 int[] arr6= new int[]{1,3,6,5,9}; int[] arr8= new int[]{1,3,6,5,9}; int[] arr7= new int[]{122,333,433,35,229}; // 最後arr6全是20 Arrays.fill(arr6,20); for (int i =0;i<arr6.length;i++){ System.out.println(arr6[i]); } //將arr7的第3到5位全部填充為29 Arrays.fill(arr7,3,5,29); for (int i =0;i<arr7.length;i++){ System.out.println(arr7[i]); } //陣列拷貝-陣列越界:arr7共5個元素,下標值:0~4,從下標3開始copy只可以再複製2個元素,所以length=4會造成,放到到了資料中不存在的索引,導致陣列越界 // System.arraycopy(arr6,1,arr7,3,4); // length:從1到2都可以 System.arraycopy(arr6,1,arr7,3,2); for (int i =0;i<arr7.length;i++){ System.out.print(arr7[i]+","); } // 也會陣列越界 System.out.println(arr7[20]); } }
陣列的預設值
public class ArrayDefault { public static void main(String[] args) { int [] arr2 = new int[8]; // 引用資料型別陣列 String [] arr1 = new String[8]; System.out.println(arr2[4]); // 引用資料型別陣列的預設值是null System.out.println(arr1[4]); } }
Arrays類的常用方法
toString
sort
binarySearch 查詢陣列中的字串
asList
equals 比較兩個陣列是否相等
插入填充陣列元素
import javax.xml.bind.SchemaOutputResolver; import java.util.ArrayList; import java.util.Arrays; import java.util.List; //Arrays類包含用來運算元組的各種方法 //主要有以下幾種 靜態 方法(針對一維陣列) //toString //sort //binarySearch 只針對有序陣列 //asList public class ArraysClassTest { public static void main(String[] args) { int[] arrInt = {55,44,33,22,11}; String[] as = {"1", "2", "3"}; //toString,public static String toString(Array[] array)引數為陣列 //將陣列按照預設格式輸出為字串 System.out.println(Arrays.toString(arrInt)); Arrays.sort(arrInt); System.out.println(Arrays.toString(arrInt)); //binarySearch只可針對有序陣列進行查詢 int a = Arrays.binarySearch(arrInt,33); System.out.println(a); //asList,將陣列轉化為list進行返回 // 注意:集合類Collection只能用來儲存引用資料型別!所以List<int> 會報錯 // List<int> li = Arrays.asList(arrInt); List<String> sli= Arrays.asList(as); List<String> sl2 = new ArrayList<String>(Arrays.asList(as)); sli.add("test"); System.out.println(sli); } }
陣列的應用-氣泡排序
import java.util.Arrays; public class BubbleSortTest { static int[] Bubble(int [] arr){ for (int i=0;i<arr.length-1;i++){ for(int j=0;j<arr.length-1-i;j++){ if(arr[j]>arr[j+1]){ int temp = arr[j]; arr[j]=arr[j+1]; arr[j+1]=temp; } } } return arr; } public static void main(String[] args) { int[] ars= new int[]{2,64,3,6,43,2,3,100}; // Bubble(ars); Arrays.sort(ars); for (int i=0;i<ars.length;i++){ System.out.println(ars[i]);} } }