有没有办法在扫描列表的for循环中满足条件时立即返回布尔值?
在做这些事情时,我一直在使用这种“旗帜”方法。
this
引用的类是一个由多个Point
个对象组成的对象。
如果true
ArrayList中的任何一个Point
对象等于传递给方法的Point pointsCovered
,则此方法返回p
(如果对象包含输入点,因此方法名称。)
boolean containsPoint(Point p) {
boolean flag = false;
for (int i = 0; i < this.length; i++)
{
if (pointsCovered.get(i).equals(p)) {
flag = true;
break;
}
}
return flag;
}
通过搜索找不到类似的东西。
基本上我在问这是否有更好或更标准的方法。
编辑:为了澄清,我使用了这个flag
变量,因为我不知道在for
循环中返回一个语句会终止循环并立即返回该值。
干杯。
答案 0 :(得分:4)
完全删除flag
并尽快删除return
boolean containsPoint(Point p) {
for (int i = 0; i < this.length; i++)
{
if (pointsCovered.get(i).equals(p)) {
return true;
}
}
return false;
}
答案 1 :(得分:4)
如果要检查整个集合,可以在一行中执行此操作:
boolean containsPoint(Point p) {
return pointsCovered.contains(p);
}