我的下面的java代码会增加int
值,具体取决于 list
中有多少只狗超过某个年龄:
for (int i = 0; i < dogList.size(); i++) {
if (dogList.get(i).getAge() > 5) {
dogsOverFive++
continue;
}
}
将我的代码重构为自己的方法最佳做法是什么?
我应该将i
和list
作为参数传递吗?
答案 0 :(得分:13)
只需这样做:
public static int olderThan(List<Dog> dogList, int age) {
int count = 0;
for (int i = 0; i < dogList.size(); i++) {
if (dogList.get(i).getAge() > age) {
count++;
continue;
}
}
return count;
}
顺便说一句continue;
语句是不必要的。
答案 1 :(得分:2)
您应该传递list
和age
作为参数,并返回一定数量的此类狗作为int
值。
我建议考虑我的Java 8解决方案。
public int olderThan(List<Dog> list, int age) {
return (int)list.stream().filter(dog -> dog.getAge() > age).count();
}
我的同事@Nikolas Charalambidis和@Dmitry Bychenko已经展示了其他标准方式。