循环每个元素并执行其自己的操作,然后将其存储在list <String>

时间:2019-07-18 02:27:24

标签: java

我想循环列表中的每个元素。在每个元素中,我们仍然有相应的操作,我想实现这些操作,然后将其存储在列表中。

List<String> Str = words.stream().forEach(x->x.getSentenceStr().toLowerCase()).collect(Collectors.toList());

尝试使用我的方法时收到错误消息:

无法在原始类型void上调用collect。

我认为forEach用于循环列表中的每个元素,如果我在每个元素中执行某些操作,那么它会在仍循环的情况下返回输出?最后,collect将收集所有这些输出并将其转换为字符串列表。我对这个forEach函数有错误的理解吗?

这是我的假审判:

    List<String> s = new ArrayList<String>(Arrays.asList("a","b", "c"));
    List<String> ss = s.stream().forEach(x->x.toLowerCase()).collect(Collectors.toList());
    System.out.print(s);

1 个答案:

答案 0 :(得分:4)

forEachvoid,您需要像

这样的 map

List<String> ss = s.stream().map(x -> x.toLowerCase()).collect(Collectors.toList());

,您可以使用String.toLowerCase()的较短功能调用,例如

List<String> ss = s.stream().map(String::toLowerCase).collect(Collectors.toList());