Java 8List
の今後のリリースで新しいラムダ機能を使用して、.**new** List
これList
は、呼び出し元によって a が渡され、すべての内容を新しい値に変更するために関数を適用する必要がある場合に関係します。たとえば、方法Collections.sort(list)
はリストをその場で変更します。
この変換関数とこの開始リストが与えられた場合、新しいリストを作成せずに元のリストのすべての値に関数を適用する最も簡単な方法は何ですか?
String function(String s){
return s.toUppercase(); // or something else more complex
}
List<String> list = Arrays.asList("Bob", "Steve", "Jim", "Arbby");
インプレースですべての値に変更を適用する通常の方法は次のとおりです。
for (int i = 0; i < list.size(); i++) {
list.set(i, function( list.get(i) );
}
ラムダと Java 8 は以下を提供しますか?
- もっと簡単で表現力豊かな方法?
for(..)
ループのすべての足場を設定せずにこれを行う方法は?