Java按照listmap中的某个字段找到对应值
时间: 2023-08-21 11:05:10 浏览: 96
可以使用Java中的Stream API来实现按照List<Map>中的某个字段找到对应值。下面是一个示例代码:
```
List<Map<String, Object>> list = new ArrayList<>();
Map<String, Object> map1 = new HashMap<>();
map1.put("id", 1);
map1.put("name", "Tom");
Map<String, Object> map2 = new HashMap<>();
map2.put("id", 2);
map2.put("name", "Jerry");
list.add(map1);
list.add(map2);
int idToFind = 2;
String name = list.stream()
.filter(map -> idToFind == (int) map.get("id"))
.map(map -> (String) map.get("name"))
.findFirst()
.orElse(null);
System.out.println(name); // 输出 "Jerry"
```
在这个示例代码中,我们创建了一个List<Map>,其中每个Map表示一个对象,包含id和name两个字段。我们使用Stream API中的filter方法过滤出id等于指定值的Map对象,并使用map方法将其转换为对应的name值,最后使用findFirst方法获取第一个匹配的结果,如果没有匹配的结果则返回null。在这个示例中,我们将idToFind设置为2,找到了id等于2的Map对象,并获取了对应的name值"Jerry"。
阅读全文