Java 重构依赖循环的方法
下面的java代码根据Java 重构依赖循环的方法,java,list,for-loop,methods,refactoring,Java,List,For Loop,Methods,Refactoring,下面的java代码根据列表中超过某一年龄的狗的数量增加int值: for(int i=0;i5){ 多格索夫++ 继续; } } 将代码重构为自己的方法的最佳实践是什么? 我是否应该将I和列表作为参数传递?只需执行以下操作: public static int olderThan(List<Dog> dogList, int age) { int count = 0; for (int i = 0; i < dogList.size();
列表
中超过某一年龄的狗的数量增加int
值:
for(int i=0;i5){
多格索夫++
继续;
}
}
将代码重构为自己的方法的最佳实践是什么?我是否应该将
I
和列表作为参数传递?只需执行以下操作:
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;
}
publicstaticintolderthan(List dogList,int age){
整数计数=0;
对于(int i=0;iage){
计数++;
继续;
}
}
返回计数;
}
顺便说一下,继续代码>语句是不必要的。您应该传递一个列表
和一个年龄
作为参数,并返回一个int
值
我建议考虑我的Java8解决方案
public int olderThan(List<Dog> list, int age) {
return (int)list.stream().filter(dog -> dog.getAge() > age).count();
}
public int-olderThan(列表,int-age){
return(int)list.stream().filter(dog->dog.getAge()>age.count();
}
我的同事@Nikolas Charalambidis和@Dmitry Bychenko已经展示了其他标准方法。不,您应该将列表作为参数传递,比如公共无效doSomething(ArrayList…){}
是,但是它不能得到int“i”它需要迭代吗?我要说的是,通过将列表
作为参数传递给静态
方法,并将所需的狗龄阈值传递给静态
方法进行重构。这样,您可以在任何年龄使用它。@3kings返回“狗数”可能是个好主意:)public int doSomething….
public int olderThan(List<Dog> list, int age) {
return (int)list.stream().filter(dog -> dog.getAge() > age).count();
}