Map<Integer, List<DatasetFiled>> datasetOldFiledMap = datasetFileds.stream() .collect(Collectors.groupingBy(DatasetFiled::getDatasetId));和List<Map<String, Object>> fields = dataConnectTools.listField(dataset.getIp(), dataset.getPort(), dataset.getUser(), decodePassword, dataset.getSid(), dataset.getDepotName(), dataset.getSchema(), dataset.getTableName(), datasetType, eventId, filePath);用java具体代码比较元素其中两个集合的元素
时间: 2023-03-28 07:04:37 浏览: 107
Java8 Stream中间操作实例解析
这两个集合的元素无法直接比较,因为它们的数据类型和结构不同。第一个集合是一个Map,其中的元素是一个整数作为键,对应一个DatasetFiled对象列表作为值;第二个集合是一个List,其中的元素是一个Map,其中的键是一个字符串,对应一个Object对象作为值。如果需要比较这两个集合的元素,需要先将它们转换成相同的数据类型和结构,然后再进行比较。可以先将第二个集合转换成一个Map,其中的键是DatasetFiled对象的datasetId属性,对应一个List<Map<String, Object>>作为值,然后再与第一个集合进行比较。具体的代码实现可以参考以下示例:
Map<Integer, List<Map<String, Object>>> datasetNewFiledMap = fields.stream()
.collect(Collectors.groupingBy(field -> (Integer) field.get("datasetId")));
boolean isEqual = datasetOldFiledMap.equals(datasetNewFiledMap);
其中,fields是第二个集合,datasetId是其中一个键,datasetOldFiledMap是第一个集合。
阅读全文