Java數組詳解
阿新 • • 發佈:2018-03-10
gpo tr1 引用數據類型 package 隱式 列數 i++ 類型 nbsp
一、數組的概念
- 數組是多個相同類型數據的組合,實現對這些數據的統一管理
- 數組中的元素可以是任何數據類型,包括基本數據類型和引用數據類型
- 數組屬引用類型,數組型數據是對象(object),數組中的每個元素相當於該對象的成員變量
二、一維數組
動態初始化:數組聲明且為數組元素分配空間與賦值的操作分開進行
靜態初始化:在定義數組的同時就為數組元素分配空間並賦值
註意:數組是引用類型,它的元素相當於類的成員變量,因此數組一經分配空間,其中的每個元素也被按照成員變量同樣的方式被隱式初始化
數組一旦初始化,其長度是不可變的
package com.yyx.pratice; public class JavaPratice { public static void main(String[] args) { /* * 對於基本數據類型byte short int long * 而言:創建數組後,默認值為0 */ byte[] byteArr=new byte[2]; byteArr[0]=1; for(byte b:byteArr) { System.out.print(b+" "); } System.out.println();/* * 對於基本數據類型float double * 而言:默認值為0.0 */ float[] floatArr=new float[2]; floatArr[0]=2.1f; for(float f:floatArr) { System.out.print(f+" "); } System.out.println(); /* * 對於基本數據類型char而言:其默認值為空格*/ char[] charArr=new char[2]; charArr[0]=‘a‘; for(char c:charArr) { System.out.print(c+" "); } System.out.println(); /* * 對於基本數據類型boolean而言,創建數組後,其默認值為false */ boolean[] booleanArr=new boolean[2]; for(boolean c:booleanArr) { System.out.print(c+" "); } System.out.println(); /* * 對於引用類型的變量構成的數組而言:其默認值為null */ String[] strArr=new String[2]; for(String str:strArr) { System.out.print(str+" "); } } }
三、二維數組
package com.yyx.pratice; public class JavaPratice { public static void main(String[] args) { /* * 一維數組初始化 */ int[] arr1 = { 13, 35, 56 }; int[] arr2 = new int[] { 3, 5, 8 };// 靜態初始化 int[] arr3 = new int[3]; arr3[0] = 6;// 動態初始化 arr3[1] = 9; arr3[2] = 12; /* * 二維數組初始化 */ String[][] str1 = { { "Jack", "Tom" }, { "Lucy", "Jerry" } }; String[][] str2 = new String[][] { { "Jack", "Tom" }, { "Lucy", "Jerry" } };// 靜態初始化 String[][] str3 = new String[2][2]; str3[0][0] = "Jack"; str3[0][1] = "Tom"; str3[1][0] = "Lucy"; str3[1][1] = "Jerry"; for (int i = 0; i < str3.length; i++) { //控制行數 for (int j = 0; j < str3[i].length; j++) { //控制列數 System.out.print(str3[i][j] + " "); } } } }
四、數組在內存中的分配
五、數組的常見異常
- 空指針異常 NullPointerException
- 索引越界異常 ArrayIndexOutOfBoundsException
package com.yyx.pratice; public class JavaPratice { public static void main(String[] args) { /* * 空指針異常 */ //第一種 try { boolean[] booleanArr=new boolean[3]; booleanArr=null; System.out.println(booleanArr[0]); } catch (Exception e) { e.printStackTrace(); } //第二種 try { String[] strArr=new String[3]; System.out.println(strArr[0].toString()); } catch (Exception e) { e.printStackTrace(); } //第三種 try { int[][] intArr=new int[3][]; System.out.println(intArr[2][0]); } catch (Exception e) { e.printStackTrace(); } /* * 索引值越界 */ try { int[] arr=new int[3]; arr[4]=0; } catch (Exception e) { e.printStackTrace(); } } }
六、操作數組的工具類Arrays
Java數組詳解