在java中折叠数组

时间:2011-12-01 18:26:20

标签: java arrays

我有一个数组int[][] r = new int[10][1000]

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

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

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

我不是在寻找代码或者是为你做代码,但是你能指出我正确的方向吗?我搜索过,找不到这样的东西。

3 个答案:

答案 0 :(得分:4)

是的 -

  1. 迭代数组并计算非空元素
  2. 声明一个新的数组,其大小在(1)中找到,并且只向其添加非空元素。
  3. 顺便说一句,null数组

    中不能包含int个元素

答案 1 :(得分:1)

当然,这很简单:

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

一个基元数组(包括int[])不能包含null,所以你不需要做太多工作。

如果你想问一个更正确的问题我建议你编辑你的问题,但是如果你想做这样的删除,我会说数组是一个糟糕的数据类型选择。考虑一个集合界面,如List

答案 2 :(得分:0)

在插入时间:

if (val == null) skip();

稍后:

for(Element el: elementList) {

  if (el == null)  remove();

}

简而言之......