Java 8:流的映射函数中的多个条件

Jun*_*aid 4 java java-8 java-stream

如何在流的map函数中使用多个条件?我是 Java 流的新手,实际上我想在流映射中使用多个条件,例如:

List<String> cs = Arrays.asList("agent", "manager", "admin");

List<String> replace = cs.stream()
.map(p -> p.equals("agent") ? "manager" : p || p.equals("manager") ? "agent" : p )
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)

我想要的是用经理代替代理人,用代理人代替经理。也就是说,如果列表中存在代理,则将其替换为经理,如果经理存在,则将其替换为代理。

Rav*_*ala 5

你可以这样做,

List<String> interchanged = cs.stream()
    .map(s -> s.equals("manager") ? "agent" : s.equals("agent") ? "manager" : s)
    .collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)