更新时间:2020-10-26 17:40:40 来源:极悦 浏览1089次
数组(Array)是有序的元素序列。就我们常见的Java数组与其他程序设计语言中提供的数组没有多大区别,但实际上存在着一些细微的差异,而这正是Java的优势所在,Java实际上没有多维数组,只有一维数组。尽管如此,Java数组仍是一个很大的大家庭,里面有许多成员。本文我们就来介绍Java数组中最不安分的Java不规则数组。
Java不规则数组,顾名思义,就是数组本身是“不规则”的。正是因为Java数组的特征,所以在Java数组中可以创建一个“不规则”数组,即数组的每一行有不同的长度,例如第一行有一列,第二行有两列,依次类推。数组如下图所示:
不规则数组是这样得到的:
int[ ][ ] rows=new int[3][ ];
分配了数组的脊柱(spine),但是未分配行的任何部分。因为这个数组的元素都是引用 ,所以他们会获得默认值null。现在我们用以下语句来分配第一行:
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天面授
Java就业班有基础 直达就业
业余时间 高薪转行
Java在职加薪班工作1~3年,加薪神器
工作3~5年,晋升架构
提交申请后,顾问老师会电话与您沟通安排学习