我需要在与对象中的字符串映射后收集的每个字符串后面添加一个前缀“ ROLE_”。我已经完成了两个步骤,如方法mappedListWithPrefix中的showin:
class MyClass {
String uid;
}
////////
List<String> mappedListWithPrefix(List<MyClass> list) {
List<String> op = list.stream().map(MyClass::getUid).collect(Collectors.toList());//step 1
op.replaceAll(s -> "ROLE_"+s);//step 2
return op;
}
有没有一种方法可以一步完成,而无需使用第二个列表,就像map(“ ROLE _” + MyClass :: getUid)一样? (请注意,这只是为了传达想法,此映射不会wrk)
答案 0 :(得分:4)
您可以之一添加第二个map
步骤:
List<String> op = list.stream()
.map(MyClass::getUid)
.map(s -> "ROLE_" + s)
.collect(Collectors.toList());
或只需在一个map
调用中完成两项操作:
List<String> op = list.stream()
.map(o -> "ROLE_" + o.getUid())
.collect(Collectors.toList());
选择哪个主要取决于个人喜好。