我已经在这里阅读了很多有关数组和问题的内容,但无法找到答案。
我有一个等于的数组:
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();
但由于某种原因它什么都不做
答案 0 :(得分:1)
我认为你的代码抛出异常。零参数toArray()
方法返回Object[]
,您将其错误地转换为Toys[][]
。请改为this overload:
toys = Arrays.stream(toys)
.filter(i -> !(i == null || i.length == 0))
.toArray(Toys[][]::new);