如何确定集合是否为空

时间:2016-11-27 09:47:55

标签: java exception collections

我有一个3维ArrayList,我想确定它是否为空。有一个名为 EmptyCollectionException 的异常,它不是java标准库的一部分,因此我不允许使用它。

有没有办法使用本机java异常或函数来实现它?

3D List的构造如下:

>>> list_keys = dictionary_of_words.keys()
>>> list_keys
['yes', 'no']
>>> for i in list_keys:
...     print dictionary_of_words[i]
... 
oui
non
>>> 

当我浏览课程,章节和套牌时,我会为每个人创建一个列表。只有一个课程,许多章节,许多套牌,当然还有许多卡片,如果它们通过了前置条件,它们将保存在deck doublyLinkedList下。如果没有卡通过该条件,我有一个3D列表存在但没有卡。我想确定如果列表中不存在卡,则用户会收到错误消息。

事实上我只需要这些卡片。但我还需要知道目前每张卡所在的牌组。如果我只是制作一个列表并浏览所有章节和套牌并根据条件将卡片放入该列表中,那么我不知道每张卡片所在的章节和套牌。这可以通过向卡类添加两个属性来解决。但这是一个错误,因为我们设计系统并添加它们现在需要在程序的其他部分进行大量更改。课程列表中的每个索引代表章节编号,章节列表中的每个索引代表卡片编号。我这样解决了问题。

2 个答案:

答案 0 :(得分:1)

你可以做这样的事情

         List<List<List<Card>>> course = new ArrayList<List<List<Card>>>(); 
                  // some possible codes
         boolean check = course.isEmpty()
                    // other possible codes
                if (check) {
           // do something
                            }

或您要查看的任何广告或任何您希望达到目标的方式

答案 1 :(得分:1)

这应该这样做:

public static boolean isEmpty(List<List<List<Card>>> list3d) {
    return list3d.stream().flatMap(llc -> llc.stream()).flatMap(lc -> lc.stream()).count() == 0;
}

考虑到外部列表可能包含空的内部列表。如果没有卡片,它会认为整个3D列表都是空的。