如何在java8中更改字符串列表中的项目

2022-09-01 19:52:36

我想更改 中的所有项目。
正确的方法是什么?listjava8

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);
}

}

答案 1

您可以使用 ReplaceAll

将此列表的每个元素替换为将运算符应用于该元素的结果。

ArrayList<String> l = new ArrayList<>(Arrays.asList("AB","A","AA"));
l.replaceAll(x -> "b" + x);
System.out.println(l);

输出:

[bAB, bA, bAA]

答案 2

如果要使用流,可以执行如下操作:

List<String> l = new ArrayList<>(Arrays.asList("AB","A","AA"));
l = l.stream().map(x -> "b" + x).collect(Collectors.toList());
System.out.println(l);

输出:

[bAB, bA, bAA]

当然,如果要更改列表的所有元素,最好使用 replaceAll,但使用流还可以应用筛选器或轻松并行。 还会修改列表,并在列表不可修改时引发异常,同时创建新列表。replaceAllcollect