映射后如何在列表中的每个字符串后添加前缀?

时间:2020-09-16 11:48:39

标签: java

我需要在与对象中的字符串映射后收集的每个字符串后面添加一个前缀“ 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)

1 个答案:

答案 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());

选择哪个主要取决于个人喜好。