更新時間:2020-10-26 17:40:40 來源:動力節點 瀏覽1258次
數組(Array)是有序的元素序列。就我們常見的Java數組與其他程序設計語言中提供的數組沒有多大區別,但實際上存在著一些細微的差異,而這正是Java的優勢所在,Java實際上沒有多維數組,只有一維數組。盡管如此,Java數組仍是一個很大的大家庭,里面有許多成員。本文我們就來介紹Java數組中最不安分的Java不規則數組。
Java不規則數組,顧名思義,就是數組本身是“不規則”的。正是因為Java數組的特征,所以在Java數組中可以創建一個“不規則”數組,即數組的每一行有不同的長度,例如第一行有一列,第二行有兩列,依次類推。數組如下圖所示:
不規則數組是這樣得到的:
int[ ][ ] rows=new int[3][ ];
分配了數組的脊柱(spine),但是未分配行的任何部分。因為這個數組的元素都是引用 ,所以他們會獲得默認值null?,F在我們用以下語句來分配第一行:
rows[0] =new int[4];
我們沒有理由讓其他行都具有相同的長度。如果分配:
rows[1]=new int[2];
rows[2]=new int[3];
就得到了一個不規則數組(ragged array)。
在不規則數組中,不同的行具有不同的長度。
創建不規則數組代碼如下:
public class Main {
public static void main(String args[]) {
final int MAX = 10;
int [][] arrs = new int[MAX + 1][]; //分配一個具有所含行數的數組
for (int n = 0; n <= MAX; n++) //分配每一行
arrs[n] = new int[n + 1];
//給數組賦值
for (int n = 0; n < arrs.length; n++)
for (int k = 0; k < arrs[n].length; k++){
int lotteryArrs = 1;
arrs[n][k] = lotteryArrs;
}
//遍歷數組
for (int[] row : arrs){
for (int arr : row)
System.out.print(arr + " ");
System.out.println();
}
}
}
不規則數組適用是每行數據總數不確定的情況。
package SE;
import java.util.Random;
public static void main(String[] args)
static void irregular(){
int arrays[][];
arrays = new int[3][];
for(int i=0;i<arrays.length;i++){< p="">
/*Random r = new Random(47);
int h = r.nextInt(13);*/
int h = (int)(Math.random()*16);
arrays[i] = new int[h];
for(int j=0;j<h;j++){< p="">
int w = (int)(Math.random()*100);
arrays[i][j] = w;
}
}
//遍歷輸出
for(int i=0;i<arrays.length;i++){< p="">
for(int j=0;j<arrays[i].length;j++){< p="">
System.out.print(arrays[i][j]+" ");
}
System.out.println();
}
}
static void out1(String[] ss){
for (String string : ss) {
System.out.print(string);
}
System.out.println();
}
static void out2(String... ss){
for (String str : ss) {
System.out.print(str);
}
System.out.println();
}
}
以上就是關于Java不規則數組的簡單介紹,我們并沒有去深入探究不規則數組的更多用法,只是對不規則數組的定義和創建進行了簡單的介紹。想要深入學習Java不規則數組的小伙伴可以觀看本站的Java零基礎入門教程,學習更多的Java數組知識。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習