2

我想要做的是检查 Dude 类的几个实例中的至少一个(例如)是否具有某个变量的某个值,例如

public boolean isFat(Dude d) {
    // checks weight and returns boolean
}

...

for (i = 0; i < DudeList.size(); i++) {
    if (isFat(DudeList.get(i)) {
        //do your stuff
    }
}

DudeList将是一个静态ArrayList引用,Dude其中为每个构造函数添加一个Dude实例,我想你知道诀窍。

但我想知道是否有更简单的方法?这似乎有点草率。因为我可能有 138174917 个 Dude 实例,而只有一两个是 Fat

4

1 回答 1

3

如果您不想像这样进行迭代,那么最好的办法可能是对那些“胖”的类进行外部计数。通常你会在类中对静态变量执行此操作,并且应该增加该变量的 setter 中的计数。

public class Dude{
    static int nFats = 0;

    public void setFat(){
        Dude.nFats++;
    }
}

如果您想更安全(在这种情况下可能更正确),您还可以使用专为线程安全计数器设计的AtomicInteger 。

于 2013-06-14T23:13:30.477 回答