我有一个方法可以从给定列表中打印一个人的姓名(如果它具有指定的年龄)。此方法是使用命令式然后是函数式方法来实现的。
public static void printPerson(int age) {
for(Person p: list) {
if(p.age == age) {
System.out.println(p.name)
}
}
}
功能方法:
public static void printPerson(int age) {
list.stream()
.filter(p -> p.age == age)
.forEach(p -> System.out.println(p.name));
}
问题是,除了可读性之外,我们还能如何比较这两种方法,以及对每个属性的评估是什么。例如,哪一个具有更高的内存占用,哪一个引入的开销最小,或者具有更高的响应时间。可以讨论哪些其他属性(即非功能性需求)?