Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是否可以使用forEach()方法将列表中的所有字符串替换为等效的大写字母?_Java_List_Collections - Fatal编程技术网

Java 是否可以使用forEach()方法将列表中的所有字符串替换为等效的大写字母?

Java 是否可以使用forEach()方法将列表中的所有字符串替换为等效的大写字母?,java,list,collections,Java,List,Collections,我正在尝试将列表中的所有字符串替换为等效的大写字母。我知道使用replaceAll()方法可以实现这一点。但是,我只是想知道是否也可以使用forEach()方法 List list2=Arrays.asList(“贾斯汀”、“南希”、“库克”、“艾米”、“大卫”); 列表2.replaceAll(s->s.toUpperCase()); 清单2.forEach(); 是否可以使用forEach()方法将列表中的所有字符串替换为等效的大写字母 是的,如果你把它和一个。大概 IntStream.r

我正在尝试将列表中的所有字符串替换为等效的大写字母。我知道使用replaceAll()方法可以实现这一点。但是,我只是想知道是否也可以使用forEach()方法

List list2=Arrays.asList(“贾斯汀”、“南希”、“库克”、“艾米”、“大卫”);
列表2.replaceAll(s->s.toUpperCase());
清单2.forEach();
是否可以使用forEach()方法将列表中的所有字符串替换为等效的大写字母

是的,如果你把它和一个。大概

IntStream.range(0, list2.size()).forEach(x -> 
        list2.set(x, list2.get(x).toUpperCase()));

1但是,您当前的解决方案效率更高。

也许您可以使用以下新的解决方案列表:

List<String> list2 = Arrays.asList("justin", "nancy", "cooc", "amy", "david");
List<String> list1 = list2.stream().map(e -> e.toUpperCase()).collect(Collectors.toList());
List list2=Arrays.asList(“贾斯汀”、“南希”、“库克”、“艾米”、“大卫”);
List list1=list2.stream().map(e->e.toUpperCase()).collect(Collectors.toList());

您不应该使用
forEach
来影响列表的内容,就像您不应该使用增强for循环那样
replaceAll
在这里是正确的(这就是为什么它在Java8中引入的原因)。我认为,
forEach
实际上不可能做到这一点。
list2.replaceAll(String::toUpperCase)
是最好的方法。@PaulBoddington,但如果存在并行性@Pshemo
List,则不行。indexOf()
应该包含如下文本:!!!警告性能非常差。仅在极端紧急情况下使用!!!警告如果元素重复,将只返回第一个元素的索引!!!警告远离!!!危险!!!这将使许多人免于编写像那样糟糕的代码
List<String> list2 = Arrays.asList("justin", "nancy", "cooc", "amy", "david");
List<String> list1 = list2.stream().map(e -> e.toUpperCase()).collect(Collectors.toList());