如何判断一个ArrayList是否已填满

4

你好,我正在开发一个使用arraylists的应用程序(仅为练习而非真正的应用程序)

我创建了一个方法来给出一个数学答案,但只有在arraylist中不包含对象时才能使用。出于某种原因,我总是看到if/else结构中的else部分。

这是我检查arraylist是否包含对象的方法:

public void sluitRegistratie() {

    aantalBezoekers = bezoeker.size();

    if(!(aantalBezoekers >= 0)) {

        String str = "Gemiddelde tijd bezoekers: " + (gesommeerdeTijd / aantalBezoekers);

        JOptionPane.showMessageDialog(null, str);
    }
    else {
        JOptionPane.showMessageDialog(null, "Bezoekers zijn nog niet weg");
    }

}

1
你能提供国际化信息的内容吗 =) ? - Juvanis
2
好了,大家都回答了同样的问题。编辑:现在是6个。编辑:不对,现在又变成7个了! - jn1kk
这些消息根本不相关;)) - moonwave99
@skynorth,他们都不需要知道他是如何填充列表的 :p - weston
@weston,有趣的是,如果他甚至没有填充“aantalBezoekers”,也就是所谓的ArrayList,那么他们的解决方案对他毫无帮助。为什么这个问题会被点赞2次呢?SO中的积分系统真是胡闹。 - jn1kk
6个回答

9

ArrayList有一个isEmpty()方法,如果数组列表为空,则返回true;如果不为空则返回false。所以看起来你需要这样的代码:if(bezoeker.isEmpty())...


这是最好的答案,因为isEmpty()传达了语义。它也可能更高效(例如,链表)。 - Steve Kuo

3
if(!(aantalBezoekers >= 0))

与下面的代码等价:

if(aantalBezoekers < 0)

换句话说,长度小于零,但这不可能发生。

3
ArrayList的大小永远不可能是负数,所以您对!size()>=0的检查永远不会为真。只需要检查size()==0即可。

1
if(!(aantalBezoekers >= 0)) {

基本上意味着只有在 aantalBezoekers 不大于零时才执行。

如果您想检查列表是否为零大小,请使用以下内容:

if(bezoeker.size()>0){
  System.out.pritnln("bezoeker is greater than zero " + bezoeker..size());
 } 
 else {
  System.out.pritnln("Mahn, my bezoeker is Empty " + bezoeker..size());
  }

你也可以简单地使用 ArrayList.isEmpty() 方法来检查一个 ArrayList 是否为空。

if(bezoeker.isEmpty()) {

1
一个 ArrayList 最少可以容纳 0 个元素,所以 !(aantalBezoekers >= 0) 总是会返回 false,你总是会进入 else 部分。

0

这是因为

!(aantalBezoekers >= 0)

的意思是

不大于或等于零

这相当于

小于零

而这永远不可能发生。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接