目錄java
1.數組概述數組
2.數組聲明建立工具
4.下標越界3d
5.數組的使用code
6.多維數組對象
7.Arrays類blog
數組是相同數據類型的有序集合排序
數組描述的是相同數據類型的若干個數據,按照必定的前後次序排列組合而成索引
每個數據稱作數組的元素,每一個數組元素能夠經過一個下標來訪問它們
(1).首先必須聲明數組變量,才能在程序中使用數組
聲明數組變量的語法
dateType[] arrayRefVar; //首選方法 或 dateType arrayRefVar[]; //效果相同,但不是首選方法
(2).Java語言使用new操做符來建立數組,語法以下:
dateType[] arrayRefVar = new dateType[arraySize];
(3).數組的元素是經過索引來訪問的,數組索引從零開始
(4).獲取數組長度
arrays.length
例: 數組的聲明和建立
public class ArraysDemo01 { public static void main(String[] args) { int [] nums; //(定義)聲明一個數組 nums = new int[10]; //建立一個數組 // nums這個數組能夠存放10個int類型的數據 //把聲明和建立寫一塊 //int[] nums = new int[10]; //給數組元素賦值 nums[0] = 1; nums[1] = 2; nums[2] = 3; nums[3] = 4; nums[4] = 5; nums[5] = 6; nums[6] = 7; nums[7] = 8; nums[8] = 9; nums[9] = 10; System.out.println(nums[0]); } }
運行結果
例: 計算全部元素的和
int sum = 0; //獲取數組長度 nums.length for (int i = 0;i < nums.length;i++){ sum = sum + nums[i]; } System.out.println("總和爲:"+ sum);
運行結果
例:
nums[0] = 1; nums[1] = 2; nums[2] = 3; nums[3] = 4; nums[4] = 5; nums[5] = 6; nums[6] = 7; nums[7] = 8; nums[8] = 9; System.out.println(nums[9]); //假設咱們不給num[9]賦值,這裏則輸出一個默認值:0
堆:
棧:
方法區:
能夠被全部的線程共享
包含了全部的class和static變量
// 建立 + 賦值 int[] a = {1,2,3} Man[] mans = {new Man(1,1) , new Man(2,2)}
int[] a = new int[2]; a[0] = 1; a[1] = 2;
數組是引用類型,它的原數至關於類的實例變量,所以數組一經分配空間,其中的每一個元素也被按照實例變量一樣的方式被隱式初始化
若是越界,則報:ArrayIndexOutOfBoundsException:數組下標異常
其元素 必須是相同類型的,不容許出現混合類型
數組中的元素能夠是任何數據類型,包括基本型和引用型
數組變量屬引用類型,數組也能夠當作是對象,數組中的每個元素至關於該對象的成員變量
數組自己就是變量,Java中對象是在堆裏的,所以數組不管保存原始類型仍是其餘對象類型,數組對象自己是是在堆中的
下標的合法區:[0 ~ length - 1] ,若是越界就會報錯
public static void main[String[] args]{ int[] a = new int[2]; System.out.println(a[2]); //數組下標越界 }
例:和for循環遍歷使用
public class ArraysDemo02 { public static void main(String[] args) { int[] arrays = {1,2,3,4,5}; int sum = 0; //打印數組全部元素 for (int i = 0; i < arrays.length; i++) { System.out.print(arrays[i] + " "); } System.out.println(); //計算全部元素的和 for (int i = 0; i < arrays.length; i++) { sum += arrays[i]; } System.out.println("sum = "+ sum); //查找最大數 int max = arrays[0]; for (int i = 0; i < arrays.length; i++) { if (arrays[i] > max){ max = arrays[i]; } } System.out.println("max = "+max); } }
運行結果
例: 加強for循壞打印數組元素
public class ArraysDemo03 { public static void main(String[] args) { int[] arrays = {1,2,3,4,5}; //JDK 1.5 //沒有下標 for (int array:arrays){ System.out.print(array); System.out.println(); } } }
例:
public class ArraysDemo04 { public static void main(String[] args) { int[] arrays = {1,2,3,4,5}; printArray(arrays); } //打印數組元素 public static void printArray(int[] arrays){ for (int i = 0; i < arrays.length; i++) { System.out.print(arrays[i] + " "); } } }
運行結果
例:
public class ArraysDemo05 { public static void main(String[] args) { int[] arrays = {1,2,3,4,5}; int[] reverse = reverse(arrays); printArray(reverse); } //反轉數組 public static int[] reverse(int[] arrays){ int[] result = new int[arrays.length]; //反轉操做 for (int i = 0,j = result.length - 1; i < arrays.length; i++,j--) { result[j] = arrays[i]; } return result; } //打印數組元素 public static void printArray(int[] arrays){ for (int i = 0; i < arrays.length; i++) { System.out.print(arrays[i] + " "); } } }
運行結果
多維數組能夠當作是數組的數組。好比二維數組就是一個特殊的一維數組,其中每個元素都是一個一維數組
二維數組
int a[][] = new int[2][5];
以上二維數組 a 能夠當作一個2行5列的數組
一維數組
二維數組
例: 建立一個二維數組
public class Demo06 { public static void main(String[] args) { //[4][2]:4行2列 /* 1,2 array[0] (能夠把它當作一個直角座標系) 2,3 array[1] 3,4 array[2] 4,5 array[3] */ int[][] array = {{1,2},{2,3},{3,4},{4,5}}; //打印{1,2} System.out.print(array[0][0] + " "); System.out.println(array[0][1]); } }
運行結果
例: 用for循壞打印出這個數組
public class Demo06 { public static void main(String[] args) { int[][] array = {{1,2},{2,3},{3,4},{4,5}}; for (int i = 0; i < array.length; i++) { for (int j = 0; j < array[i].length; j++) { System.out.print(array[i][j] + ","); } } } }
運行結果
數組的工具類 java.util.Arrays
因爲數組對象自己沒有什麼方法能夠供咱們調用,但API中提供了一個工具類Arrays供咱們速用,從而能夠對數據的對象進行一些基本的操做
查看 JDK 幫助文檔
Arrays類中的方法都是static修飾的靜態方法,在使用的時候能夠直接使用類名進行調用,從而「不用」使用對象來調用
具備一下經常使用功能
例:
import java.util.Arrays; public class Demo07 { public static void main(String[] args) { int[] a = {1,45,988,345,652,0,99}; //打印數組元素 System.out.println(Arrays.toString(a)); //排序 Arrays.sort(a); System.out.println(Arrays.toString(a)); } }