java 第一个集合 [deptId, deptName, deptType] 和 第二个集合 [{"deptName":"泌尿一门诊","moreData":"","deptAddress":"新区门诊二楼3区","deptId":"11402","deptType":"门诊"}, {"deptName":"泌尿外科","moreData":"","deptAddress":"新区门诊2楼","deptId":"114","deptType":"其他"}, {"deptName":"泌尿一病区","moreData":"","deptAddress":"1号住院部10楼","deptId":"11401","deptType":"其他"}] 用lambda表达式 处理一个新集合,结果如下 [{"deptName":"泌尿一门诊","deptId":"11402","deptType":"门诊"}, {"deptName":"泌尿外科","deptId":"114","deptType":"其他"}, {"deptName":"泌尿一病区","deptId":"11401","deptType":"其他"}]
时间: 2023-06-28 09:16:15 浏览: 55
可以使用Java 8的Lambda表达式和Stream API来实现。
假设第一个集合为`List<String>`类型,第二个集合为`List<Map<String, String>>`类型,代码如下:
```java
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class Test {
public static void main(String[] args) {
List<String> list1 = new ArrayList<>(); // 第一个集合
list1.add("deptId");
list1.add("deptName");
list1.add("deptType");
List<Map<String, String>> list2 = new ArrayList<>(); // 第二个集合
Map<String, String> map1 = new HashMap<>();
map1.put("deptName", "泌尿一门诊");
map1.put("moreData", "");
map1.put("deptAddress", "新区门诊二楼3区");
map1.put("deptId", "11402");
map1.put("deptType", "门诊");
Map<String, String> map2 = new HashMap<>();
map2.put("deptName", "泌尿外科");
map2.put("moreData", "");
map2.put("deptAddress", "新区门诊2楼");
map2.put("deptId", "114");
map2.put("deptType", "其他");
Map<String, String> map3 = new HashMap<>();
map3.put("deptName", "泌尿一病区");
map3.put("moreData", "");
map3.put("deptAddress", "1号住院部10楼");
map3.put("deptId", "11401");
map3.put("deptType", "其他");
list2.add(map1);
list2.add(map2);
list2.add(map3);
// 处理新集合
List<Map<String, String>> newList = list2.stream()
.map(map -> {
Map<String, String> newMap = new HashMap<>();
newMap.put("deptName", map.get("deptName"));
newMap.put("deptId", map.get("deptId"));
newMap.put("deptType", map.get("deptType"));
return newMap;
})
.collect(Collectors.toList());
System.out.println(newList); // 输出新集合
}
}
```
运行结果为:
```
[{deptName=泌尿一门诊, deptId=11402, deptType=门诊}, {deptName=泌尿外科, deptId=114, deptType=其他}, {deptName=泌尿一病区, deptId=11401, deptType=其他}]
```
以上代码中,我们使用了`stream()`方法将第二个集合转化为一个流,然后使用`map()`方法对流中的每一个元素进行映射操作,将每个Map的"deptName"、"deptId"、"deptType"三个键值对提取出来,放入到一个新的Map中,并返回这个新的Map。最后使用`collect()`方法将这些新的Map收集到一个新的List中。