2011-12-01 55 views
-1

我有一个阵列int[][] r = new int[10][1000]java中的折叠阵列

我想删除数组中的任何空值并将其折叠。

所以如果数组是{{5,3,null,2,null,80,90,348,38,null,...},...}

我希望它是{{5,3,2,80,90,348,38,...},...}(长度也改变了)

我不是找代码或为你为我做的,但也你指向正确的方向吗?我搜索了,找不到像这样的东西。

+3

是的,这是可能的 – DarthVader

+0

你需要创建新的阵列(并决定如何处理长度可能不同的情况,如果可能的话)和过滤器。 –

+0

你不需要搜索它,试着了解你需要做什么。 – DarthVader

回答

4

烨 -

  1. 迭代阵列和计数的非零元素
  2. 声明一个新的阵列,以在(1)中,并添加到它唯一的非空元素发现的尺寸。

顺便说一句,你不能在int阵列null元素

1

当然,这很简单:

int[][] uncollapsed = ...; 
int[][] collapsed = uncollapsed; 

元(包括int[])数组不能包含空,所以有没有太多的工作你必须做。

如果你想问一个更正确的问题,我建议你编辑你的问题,但一看就知道,如果你想做这样的清除,数组是一个很差的数据类型的选择。考虑收集界面,如List

0

在插入时间:

if (val == null) skip(); 

在稍后的时间:

for(Element el: elementList) { 

    if (el == null) remove(); 

} 

简而言之...