This question already has answers here:
How to remove an empty list from a list (Java)
                                
                                    (3个答案)
                                
                        
                2年前关闭。
            
        

我想浏览我的ArrayLists的ArrayList并删除所有空的。有没有一种快速有效的方法来执行此操作,否则我猜一个for循环?

示例输出:


  [[alec,joe,ray],[],[eric,jacob],[]]


然后将如下所示:


  [[alec,joe,ray],[eric,jacob]]

最佳答案

像这样的东西就足够了。

nestedArrayList = nestedArrayList.stream()
    .filter(e -> !e.isEmpty())
    .collect(Collectors.toCollection(ArrayList::new));


或按照Zabuza的建议,可以使用removeIf

nestedArrayList.removeIf(ArrayList::isEmpty);


恕我直言,出于种种原因,我会选择第二种方法,但最重要的是像“如果ArrayList为空,则将nestedArrayList删除”那样阅读它,可以提供更好的代码意图并且更易于理解。

07-27 14:33