首页 课程 师资 教程 报名

浅谈Java不规则数组

  • 2020-10-26 17:40:40
  • 290次 动力节点

数组(Array)是有序的元素序列。就我们常见的Java数组与其他程序设计语言中提供的数组没有多大区别,但实际上存在着一些细微的差异,而这正是Java的优势所在,Java实际上没有多维数组,只有一维数组。尽管如此,Java数组仍是一个很大的大家庭,里面有许多成员。本文我们就来介绍Java数组中最不安分的Java不规则数组


Java不规则数组,顾名思义,就是数组本身是“不规则”的。正是因为Java数组的特征,所以在Java数组中可以创建一个“不规则”数组,即数组的每一行有不同的长度,例如第一行有一列,第二行有两列,依次类推。数组如下图所示:

image.png


不规则数组是这样得到的:

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数组知识。


选你想看

你适合学Java吗?4大专业测评方法

代码逻辑 吸收能力 技术学习能力 综合素质

先测评确定适合在学习

在线申请免费测试名额
价值1998元实验班免费学
姓名
手机
提交