我想要做的是检查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
答案 0 :(得分:3)
如果你不想这样迭代,那么最好的办法就是对那些“胖”的类进行外部计数。通常你会在类中做一个静态变量,你应该增加该变量的setter中的计数。
public class Dude{
static int nFats = 0;
public void setFat(){
Dude.nFats++;
}
}
如果您想要更安全(在这种情况下可能更正确),您还可以使用专为线程安全计数器设计的AtomicInteger。