使用Lamada表达式 更加简洁 直观;
interface judgeOne{
public boolean judge(Apple apple);
}
class Appleselecter{
//行为参数化
public List<Apple> getAppleList(List<Apple> list,judgeOne filter){
List<Apple>result =new ArrayList<Apple>();
for(Apple apple: list){
if(filter.judge(apple)){
result.add(apple);
}
}
return result;
}
}
public class Main {
public static void main(String[] args) {
Apple apple1=new Apple(1,"white");
Apple apple2=new Apple(2,"white");
Apple apple3=new Apple(3,"white");
Apple apple4=new Apple(1,"black");
List<Apple> apples =new ArrayList<>();
apples.add(apple1);
apples.add(apple2);
apples.add(apple3);
apples.add(apple4);
Appleselecter selector =new Appleselecter();
//使用Lamada表达式 挑选出白色的苹果数量
int a=selector.getAppleList(apples,(Apple apple) -> apple.getColor().equals("white")).size();
//使用匿名内部类 挑选出重量大于等于1的苹果数量
int b=selector.getAppleList(apples, new judgeOne() {
@Override
public boolean judge(Apple apple) {
if(apple.getWeight()>=1) {
return true;
}
else {
return false;
}
}
}).size();
}
}
本文通过一个具体的示例,展示了如何使用Lambda表达式来简化Java编程中的代码,特别是对于函数式接口的实现,使得代码更加简洁直观。通过对比传统的匿名内部类方式,Lambda表达式的使用显著减少了代码量,提高了代码的可读性和维护性。
1874

被折叠的 条评论
为什么被折叠?



