陣列詳解
- 前言
- 陣列總綱
- 一維陣列
- 創建方法
- 擴展:
- 陣列的使用
- 注意事項
- 陣列作為方法引數
- 陣列作為方法回傳值
- 小練習
- 二維陣列
- 創建方法
- 二維陣列的使用
- 總結
前言
上周末因為參加藍橋杯 導致自己一直沒時間寫博客,也欠下了不少博客,今天我又一次凱旋歸來!!!!!!!!!!!!
陣列總綱
陣列就是多個相同型別的資料 放在一起,為了簡單方便,而被創造出來的一個型別唄,他不是基本資料型別 我們用陣列可以實作多個變數的 “批量” 創建和修改!
記住關鍵字眼哦,相同型別,必須相同型別,其實學完你會發現,陣列根本沒法弄不同型別的資料啊!!書上還一本正經的說:在 Java 中, 陣列中包含的變數必須是 相同型別(相同型別還給我加粗)牛類很啊!
一維陣列
首先介紹一下一維陣列吧
創建方法
java中創建一維陣列的方法有三種:下面看代碼,
public static void main(String[] args) {
//第一種 直接創建并初始化,稱為靜態初始化
int[] array1 = {1,2,3,4};
//第二種 使用關鍵字new 在堆區創建一個 陣列,
int[] array2 = new int[3];
//第三種 和第二種相同 只不過初始化一下
int[] array3 = new int[]{1,2,3};
}
其中第二種方法 是有初始值的,因為他是在堆區,堆區系統自動初始化,下面我講第一種和第三種方法屏蔽 大家看第二種方法的結果!

在這里可以看出,陣列內的元素自動被賦值為了 0 .所以在這里我說一下,堆區變數 自動初始化賦值為0;
擴展:
Arrays.toString(array2) 的意思,就是將array2內的元素轉換為字串型別,回傳值為字串
陣列的使用
在使用程序中一般是與for回圈嵌套使用的 比如以下代碼,

切記一點 在這里不要越界,比如我們有三個元素,arr[0],arr[1],arr[2] 三個元素,arr[4] 便不屬于該 陣列使用便會有例外,也叫做陣列越界 或溢位,
注意事項
- 使用 arr.length 能夠獲取到陣列的長度. . 這個操作為成員訪問運算子. 后面在面向物件中會經常用到.
- 2.使用 [ ] 按下標取陣列元素. 需要注意, 下標從 0 開始計數
- 使用 [ ] 操作既能讀取資料, 也能修改資料. 4. 下標訪問操作不能超出有效范圍 [0, length - 1] , 如果超出有效范圍, 會出現下標越界例外
陣列作為方法引數
首先看下圖代碼

我們如果這樣實作代碼,你會發現,交換資料是沒法包裝成一個方法的,而使用陣列呢?

雖然我知道代碼很挫,但是 通過這個我們可以理解到,陣列名代表陣列的地址,而傳遞過去的引數也是地址 再改變引數自然就是從地址將其改變,
陣列作為方法回傳值

其實這個代碼特別好理解,,就是將陣列回傳 賦值給另一個陣列,我相信大家學起來so easy;
小練習
一維陣列學的差不多了,下面我們來了做一個小練習—自己實作toString 下面我直接寫代碼吧,就不羅嗦了,
public static String myToString(int[] arr){
String ret = "[";
for (int i = 0; i < arr.length; i++) {
ret = ret+arr[i];
if(i != arr.length-1){
ret = ret+",";
}else {
ret = ret+"]";
}
}
return ret;
}
public static void main(String[] args) {
int[] arr = {1,2,3,4,5,6};
String ret = myToString(arr);
System.out.println(ret);
}
大家看一下代碼,并嘗試著寫一下,不難的,一維陣列到此結束 撒花
二維陣列
創建方法
還是三種和一維一樣的,我再寫一遍嗷!!!!
其實二維陣列 和一維陣列差不多,我寫一下使用情況吧,其他的似乎大家都能了解
public static void main(String[] args) {
//第一種直接創建并初始化,稱為靜態初始化
int[][] arr1 = {{1,2,3},{4,5,6},{7,8,9}};
//第二種 使用關鍵字new 在堆區創建一個 陣列,
int[][] arr2 = new int[3][4];
//第三種 不介紹咯
int[][] arr = new int[][]{{1,2,3},{4,5,6},{7,8,9}};
}
記住重要的一點,,int[][] 是一個型別 中括號內不允許寫東西,
二維陣列的使用
第一種:比較難理解哦,新官上任三把火,先來個牛逼點的二維陣列
public static void main(String[] args) {
int[][] array = new int[3][];
array[0] = new int[4];
array[1] = new int[5];
array[2] = new int[4];
for (int[] arr:array ) {
for (int x : arr) {
System.out.print(x+" ");
}
System.out.println();
}
}
大家猜猜列印結果是啥!!!!!!
三行的二維陣列,第一行四個元素 第二行五個元素 第三行四個元素,當人new自動初始化為0;
再者就是for回圈的用法了,棒棒噠,
第二種:
public static void main(String[] args) {
int[][] array = {{1,2,3},{4,5,6},{7}};
for(int i = 0; i < array.length;i++){
for(int j = 0; j < array[i].length; j++){
System.out.print(array[i][j]+" ");
}
System.out.println();
}
}
其實主要就是這些 還有一點,也就是,java中 array[1][2] 中的2不能省略,而C語言可以,因為C語言的二維陣列是個矩形,而java則是不規范的,
好了今天的分享就到這里了
、
、
總結
小編最近剛比完藍橋杯,效果不是很好,但已經知道了題型,來年再戰,希望大家和我一起加油哦!
小編qq:2206730228
大家可以跟我一起學習
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/279236.html
標籤:java
上一篇:java基本使用及方法的多載遞回
下一篇:集合類別庫
