是否可以使用 lambda 就地更改列表的值(无需创建新列表)?
2022-09-02 20:28:02
我正在尝试确定在即将发布的Java 8中使用新的lambs功能更改所有值的正确方法,而无需创建.List
**new** List
这与调用方传入 a 并且需要应用函数以将所有内容更改为新值时有关。例如,就地更改列表的方式。List
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) );
}
lambdas 和 Java 8 是否提供:
- 一种更简单,更富有表现力的方式?
- 一种无需设置循环的所有脚手架即可做到这一点的方法?
for(..)