听起来你可以使用地图与条件:
List list2 = list
.stream()
.map(str -> someCondition(str) ? doSomething(str) : doSomethingElse(str))
.collect(Collectors.toList());
简短但完整的示例将短字符串映射到小写和长字符大写字母:
import java.util.*;
import java.util.stream.*;
public class Test {
public static void main(String[] args) {
List list = Arrays.asList("abC", "Long Mixed", "SHORT");
List list2 = list
.stream()
.map(str -> str.length() > 5 ? str.toUpperCase() : str.toLowerCase())
.collect(Collectors.toList());
for (String result : list2) {
System.out.println(result); // abc, LONG MIXED, short
}
}
}