Java8 从列表中删除密钥<Map<String, Object>>
Java8 remove keys from List<Map<String, Object>>
我有一个 List
Map<String, Object> map1 = new HashMap<String, Object>();
map1.put("Name", "Michael");
map1.put("Age", 43);
map1.put("City", "Paris");
Map<String, Object> map2 = new HashMap<String, Object>();
map2.put("Name", "Tanja");
map2.put("Age", 23);
map2.put("City", "Berlin");
Map<String, Object> map3 = new HashMap<String, Object>();
map3.put("Name", "Diego");
map3.put("Age", 35);
map3.put("City", "Madrid");
List<Map<String, Object>> list = new ArrayList<>();
list.add(map1);
list.add(map2);
list.add(map3);
示例:
[
{Name="Michael", age=43, city="Paris"},
{Name="Tanja", age=23, city="Berlin"},
{Name="Diego", age=35, city="Madrid"}
]
至:
[
{Name="Michael", city="Paris"},
{Name="Tanja", city="Berlin"},
{Name="Diego", city="Madrid"}
]
感谢您的帮助。
你可以简单地使用这个:
list.forEach(stringObjectMap -> {
stringObjectMap.remove("Age");
});
由于地图对象是一个引用,您可以简单地从地图中删除一个键,而无需将其复制到另一个地图对象中。
试试这样的东西:
List<Map<String, Object>> result = list.stream()
.filter(x -> x.entrySet().removeIf(y -> y.getKey().equals("Age")))
.collect(Collectors.toList());
我有一个 List
Map<String, Object> map1 = new HashMap<String, Object>();
map1.put("Name", "Michael");
map1.put("Age", 43);
map1.put("City", "Paris");
Map<String, Object> map2 = new HashMap<String, Object>();
map2.put("Name", "Tanja");
map2.put("Age", 23);
map2.put("City", "Berlin");
Map<String, Object> map3 = new HashMap<String, Object>();
map3.put("Name", "Diego");
map3.put("Age", 35);
map3.put("City", "Madrid");
List<Map<String, Object>> list = new ArrayList<>();
list.add(map1);
list.add(map2);
list.add(map3);
示例:
[
{Name="Michael", age=43, city="Paris"},
{Name="Tanja", age=23, city="Berlin"},
{Name="Diego", age=35, city="Madrid"}
]
至:
[
{Name="Michael", city="Paris"},
{Name="Tanja", city="Berlin"},
{Name="Diego", city="Madrid"}
]
感谢您的帮助。
你可以简单地使用这个:
list.forEach(stringObjectMap -> {
stringObjectMap.remove("Age");
});
由于地图对象是一个引用,您可以简单地从地图中删除一个键,而无需将其复制到另一个地图对象中。
试试这样的东西:
List<Map<String, Object>> result = list.stream()
.filter(x -> x.entrySet().removeIf(y -> y.getKey().equals("Age")))
.collect(Collectors.toList());