我正在尝试确定List
使用即将发布的Java 8中的新 lambdas 功能更改所有值的正确方法,而无需创建**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) );
}
lambdas 和 Java 8 是否提供:
- 更简单、更有表现力的方式?
- 一种无需设置所有
for(..)
循环脚手架的方法吗?