ListHealthDeviceResult deviceResults = healthDeviceResultServicegetAllResultByBarcodebarcode;如何去除里面deviceType相同itemName相同但checkTime不同的数据
您可以使用Java的Stream API来对List进行操作,以去除deviceType相同,itemName相同但checkTime不同的数据。下面是一个示例代码:
List<HealthDeviceResult> filteredResults = deviceResults.stream()
.collect(Collectors.groupingBy(r -> Arrays.asList(r.getDeviceType(), r.getItemName())))
.values().stream()
.map(list -> list.stream().max(Comparator.comparing(HealthDeviceResult::getCheckTime)).orElse(null))
.filter(Objects::nonNull)
.collect(Collectors.toList());
这段代码将先通过groupingBy方法将List按照deviceType和itemName进行分组,然后对每个组内的元素进行比较,选择checkTime最大的元素。最后使用filter方法排除掉为null的元素,并将结果收集到一个新的List中。
请注意,这段代码假设HealthDeviceResult类有相应的getter方法来获取deviceType、itemName和checkTime的值
原文地址: https://www.cveoy.top/t/topic/iyIz 著作权归作者所有。请勿转载和采集!