我希望获得一些对象的属性,List<Object>并将它们放入List<Map<String,Object>>使用java8的lambda中.在Java7中,我会以这种方式编写.为了使这个可读,我想用Java8的Lambda以另一种方式翻译它.
List<HouseModel> _house = new ArrayList<>();
List<Map<String, String>> list = new ArrayList<>();
Map<String, String> map = new HashMap<>(2);
for (HouseModel h : _house) {
map.put("address", h.getAddress());
map.put("number", h.getHouseNum());
list.add(map);
}
Run Code Online (Sandbox Code Playgroud)
您可以将每个映射HouseModel到a Map<String,String>然后收集到List:
List<Map<String, String>> list =
_house.stream()
.map(h -> {Map<String,String> map = new HashMap<>();
map.put("address", h.getAddress());
map.put("number", h.getHouseNum());
return map;
})
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
或者,如果您使用的是Java 9,并且不介意创建的Maps是不可变的:
List<Map<String, String>> list =
_house.stream()
.map(h -> Map.of("address", h.getAddress(),"number", h.getHouseNum()))
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
217 次 |
| 最近记录: |