4

您好,我正在创建一个使用数组列表的应用程序(练习目的不是真正的应用程序)我创建了一个方法,它可以给我数学答案,但前提是数组列表不包含任何对象。出于某种原因,我总是在 if/else 构造中看到 else 。

这是我检查数组列表是否包含对象的方法

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");
    }

}
4

6 回答 6

9

ArrayList 有一个isEmpty()方法,true如果 arraylist 为空则返回,false否则返回。所以看起来你想要if(bezoeker.isEmpty())...

于 2012-12-11T21:10:14.460 回答
3
if(!(aantalBezoekers >= 0))

是相同的:

if(aantalBezoekers < 0)

换句话说,当长度小于零时,这是不可能发生的。

于 2012-12-11T21:09:40.870 回答
3

ArrayList 的大小永远不会是负数,因此您对 !size()>=0 的检查永远不会是真的。只需检查 size()==0。

于 2012-12-11T21:09:26.113 回答
1

AnArrayList至少可以容纳 0 个元素,因此!(aantalBezoekers >= 0)永远是false,并且您将永远在else其中。

于 2012-12-11T21:10:04.820 回答
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()) {
于 2012-12-11T21:12:11.920 回答
0

那是因为

!(aantalBezoekers >= 0)

方法

not greater than or equal to zero

这相当于

less than zero

这永远不会发生。

于 2012-12-11T21:09:34.583 回答