我想要更改所有项目list.
这样做的正确方法是什么java8?
public class TestIt {
public static void main(String[] args) {
ArrayList<String> l = new ArrayList<>();
l.add("AB");
l.add("A");
l.add("AA");
l.forEach(x -> x = "b" + x);
System.out.println(l);
}
}
Run Code Online (Sandbox Code Playgroud)
Ale*_* C. 39
你可以用replaceAll.
将该列表的每个元素替换为将运算符应用于该元素的结果.
ArrayList<String> l = new ArrayList<>(Arrays.asList("AB","A","AA"));
l.replaceAll(x -> "b" + x);
System.out.println(l);
Run Code Online (Sandbox Code Playgroud)
输出:
[bAB, bA, bAA]
Run Code Online (Sandbox Code Playgroud)
Rol*_*and 17
如果你想使用流,你可以这样做:
List<String> l = new ArrayList<>(Arrays.asList("AB","A","AA"));
l = l.stream().map(x -> "b" + x).collect(Collectors.toList());
System.out.println(l);
Run Code Online (Sandbox Code Playgroud)
输出:
[bAB, bA, bAA]
Run Code Online (Sandbox Code Playgroud)
当然,如果要更改列表的所有元素,最好使用replaceAll,但使用流也可以轻松应用过滤器或并行.replaceAll还修改列表并在列表不可修改时抛出异常,而collect创建新列表.