sorry,什么是▲三角形数组?(初学)(20分)

  • 主题发起人 主题发起人 yuxuant
  • 开始时间 开始时间
Y

yuxuant

Unregistered / Unconfirmed
GUEST, unregistred user!
int[][] creatArray(int n){
int nums[][]=new int[n][];
for (int i=0;i<n;i++){
nums=new int[i+1];
}
return nums;
}
第一行有一个元素,第二行有两个元素,第n行有n个元素。是什么意思?
 
呵呵!这是JAVA的数组的优越性啊!
JAVA可以定义一个不定长的数组(其实正确的叫法应该是不规则数组),也即除一维必须为确定的维数外,
其他的维数可以是不定长的int nums[][]=new int[n][];//代表创建了一个n维不定长二维数组,
注意java必须确定第一维的长度,例如你不能int nums[][]=new int[][];//这样编译器是通不过的!
一旦你创建了一个不定长的数组,你就可以任意的为每一行生成一个不定长的数组
数组的每一行可以单独访问,所以你可以通过 nums=new int[i+1];
为每一行创建不同数量的数组元素.因为你的数组是逐渐增加的,类似三角形,
比如你的数组构造是(1代表一个元素)

11
111
1111
.........N
其实JAVA不存在多维数组,这跟C++不同,C++为没个元素都产生一个访问的地址,并且该地址是连续的
也即是一段逻辑上可以看作行列的二维区域,清注意,该区域是连续的,
但JAVA不同,JAVA的多维数组是"数组的数组",最大的不同在于他的元素的内存地址是不连续的
只有第一维元素是线性的排列(指向第二维的地址),其他的元素都由第一维元素的地址指向的地址
连续保存,所以,他们的内存是不连续的!呵呵!

 
接受答案了.
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
I
回复
0
查看
473
import
I
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
658
import
I
后退
顶部