Java 是否可以使用forEach()方法将列表中的所有字符串替换为等效的大写字母?
我正在尝试将列表中的所有字符串替换为等效的大写字母。我知道使用replaceAll()方法可以实现这一点。但是,我只是想知道是否也可以使用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
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,但如果存在并行性@PshemoList,则不行。indexOf()
应该包含如下文本:!!!警告性能非常差。仅在极端紧急情况下使用!!!警告如果元素重复,将只返回第一个元素的索引!!!警告远离!!!危险!!!这将使许多人免于编写像那样糟糕的代码
List<String> list2 = Arrays.asList("justin", "nancy", "cooc", "amy", "david");
List<String> list1 = list2.stream().map(e -> e.toUpperCase()).collect(Collectors.toList());