获取Map<String, Object>中相同的数据
时间: 2023-11-18 07:27:15 浏览: 60
可以使用Java 8中的Stream API来获取Map<String, Object>中相同的数据,示例代码如下:
Map<String, Object> map1 = new HashMap<>();
map1.put("A", 1);
map1.put("B", 2);
map1.put("C", 3);
Map<String, Object> map2 = new HashMap<>();
map2.put("A", 1);
map2.put("D", 4);
map2.put("E", 5);
List<Object> intersect = map1.entrySet().stream()
.filter(e -> map2.containsKey(e.getKey()))
.map(Map.Entry::getValue)
.collect(Collectors.toList());
System.out.println(intersect);
输出结果为 [1]。
相关问题
List<String> getOption(Map<String, Object> params); Map<String, Object> getFollowByOption(Map<String, Object> params); void sh(Map<String, Object> params); int remindCount(Map<String, Object> params); Map<String, Object> selectCal(Map<String, Object> params); List<Map<String, Object>> selectGroup(Map<String, Object> params); List<Map<String, Object>> selectValue(Map<String, Object> params);
这段代码是一个 MyBatis 的 Mapper 接口,提供了多个方法,用于从数据库中查询数据或执行操作。具体方法如下:
- getOption:返回一个字符串列表,用于前端下拉框等组件的选项。
- getFollowByOption:返回一个 Map 对象,用于根据选项查询关注的数据。
- sh:执行审核操作,没有返回值。
- remindCount:返回一个整数值,用于提醒数量的统计。
- selectCal:返回一个 Map 对象,用于查询某个统计数据。
- selectGroup:返回一个 Map 对象列表,用于按照分组查询数据。
- selectValue:返回一个 Map 对象列表,用于查询某个字段的值。
对 Map<String, List<Map<String, Object>>>中的list group by 并且生成Map<String,Map<String, List<Map<String, Object>>>>
可以使用Java 8的Stream API来对Map<String, List<Map<String, Object>>>中的list进行分组,并生成Map<String, Map<String, List<Map<String, Object>>>>。下面是一个示例代码:
```java
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class GroupByExample {
public static void main(String[] args) {
Map<String, List<Map<String, Object>>> originalMap = ...; // 原始的Map<String, List<Map<String, Object>>>对象
Map<String, Map<String, List<Map<String, Object>>>> groupedMap = originalMap.entrySet().stream()
.collect(Collectors.toMap(
Map.Entry::getKey,
entry -> entry.getValue().stream()
.collect(Collectors.groupingBy(
map -> (String) map.get("groupKey")
))
));
System.out.println(groupedMap);
}
}
```
在上面的代码中,我们使用了`Collectors.groupingBy`方法来对list进行分组,分组的依据是list中每个Map对象的`groupKey`属性的值。最终,我们将分组结果存储在一个新的Map对象`groupedMap`中。
阅读全文