使用nulls / empty元素移位数组

时间:2017-02-13 06:36:48

标签: java arrays sorting

我已经在这里阅读了很多有关数组和问题的内容,但无法找到答案。

我有一个等于的数组:

Toys[][] toys = { {toy, toy, toy, toy}, {toy}, {}, {toy,toy}, {toy} };

Toys[][] toys = { {toy, toy, toy, toy}, {toy}, null, {toy,toy}, {toy} };

我试图将空元素或空元素之后的元素移到左边,这样就等于:

 Toys[][] toys = { {toy, toy, toy, toy}, {toy}, {toy,toy}, {toy} };

我尝试过这样的流媒体价值:

toys = (Toys[][]) Arrays.stream(toys).filter(i -> !(i == null || i.length == 0)).toArray();

但由于某种原因它什么都不做

1 个答案:

答案 0 :(得分:1)

我认为你的代码抛出异常。零参数toArray()方法返回Object[],您将其错误地转换为Toys[][]。请改为this overload

toys = Arrays.stream(toys)
        .filter(i -> !(i == null || i.length == 0))
        .toArray(Toys[][]::new);