指定されたageがある場合、特定のリストから人の名前を出力するメソッドがあります。このメソッドは、命令型の次に関数型のアプローチを使用して実装されます。
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));
}
問題は、読みやすさの他に、これら 2 つのアプローチを他にどのように比較できるか、およびこれらの各属性の評価がどうなるかです。たとえば、メモリ フットプリントが大きいもの、オーバーヘッドが最小のもの、応答時間が長いものなどです。他にどのような属性 (つまり、機能以外の要件) について説明できますか?