更新時(shí)間:2020-10-26 17:40:40 來源:動(dòng)力節(jié)點(diǎn) 瀏覽1311次
數(shù)組(Array)是有序的元素序列。就我們常見的Java數(shù)組與其他程序設(shè)計(jì)語(yǔ)言中提供的數(shù)組沒有多大區(qū)別,但實(shí)際上存在著一些細(xì)微的差異,而這正是Java的優(yōu)勢(shì)所在,Java實(shí)際上沒有多維數(shù)組,只有一維數(shù)組。盡管如此,Java數(shù)組仍是一個(gè)很大的大家庭,里面有許多成員。本文我們就來介紹Java數(shù)組中最不安分的Java不規(guī)則數(shù)組。
Java不規(guī)則數(shù)組,顧名思義,就是數(shù)組本身是“不規(guī)則”的。正是因?yàn)镴ava數(shù)組的特征,所以在Java數(shù)組中可以創(chuàng)建一個(gè)“不規(guī)則”數(shù)組,即數(shù)組的每一行有不同的長(zhǎng)度,例如第一行有一列,第二行有兩列,依次類推。數(shù)組如下圖所示:
不規(guī)則數(shù)組是這樣得到的:
int[ ][ ] rows=new int[3][ ];
分配了數(shù)組的脊柱(spine),但是未分配行的任何部分。因?yàn)檫@個(gè)數(shù)組的元素都是引用 ,所以他們會(huì)獲得默認(rèn)值null?,F(xiàn)在我們用以下語(yǔ)句來分配第一行:
rows[0] =new int[4];
我們沒有理由讓其他行都具有相同的長(zhǎng)度。如果分配:
rows[1]=new int[2];
rows[2]=new int[3];
就得到了一個(gè)不規(guī)則數(shù)組(ragged array)。
在不規(guī)則數(shù)組中,不同的行具有不同的長(zhǎng)度。
創(chuàng)建不規(guī)則數(shù)組代碼如下:
public class Main {
public static void main(String args[]) {
final int MAX = 10;
int [][] arrs = new int[MAX + 1][]; //分配一個(gè)具有所含行數(shù)的數(shù)組
for (int n = 0; n <= MAX; n++) //分配每一行
arrs[n] = new int[n + 1];
//給數(shù)組賦值
for (int n = 0; n < arrs.length; n++)
for (int k = 0; k < arrs[n].length; k++){
int lotteryArrs = 1;
arrs[n][k] = lotteryArrs;
}
//遍歷數(shù)組
for (int[] row : arrs){
for (int arr : row)
System.out.print(arr + " ");
System.out.println();
}
}
}
不規(guī)則數(shù)組適用是每行數(shù)據(jù)總數(shù)不確定的情況。
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();
}
}
以上就是關(guān)于Java不規(guī)則數(shù)組的簡(jiǎn)單介紹,我們并沒有去深入探究不規(guī)則數(shù)組的更多用法,只是對(duì)不規(guī)則數(shù)組的定義和創(chuàng)建進(jìn)行了簡(jiǎn)單的介紹。想要深入學(xué)習(xí)Java不規(guī)則數(shù)組的小伙伴可以觀看本站的Java零基礎(chǔ)入門教程,學(xué)習(xí)更多的Java數(shù)組知識(shí)。
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)