gpt4 book ai didi

java - 从 2 个列表中过滤并使用 java8 获取匹配的记录

转载 作者:行者123 更新时间:2023-11-30 10:12:13 24 4
gpt4 key购买 nike

我有两个列表,一个是 messagePermissionResponseDTOList,另一个是 dispatchSMSQList。 我想从 dispatchSMSQList 中取出被阻止号码的列表。下面是我的工作代码片段。 您能否指导如何将其转换为 Lambda 表达式或其正确值?测试数据的工作链接是 https://repl.it/repls/FriendlyImmenseClasses

        TreeSet<Long> blockedNumbersSet = new TreeSet<>();
for (MessagePermissionResponseDTO permission: messagePermissionResponseDTOList) {
if (permission.isBlocked()) {
blockedNumbersSet.add(permission.getPhoneNumber());
}
}
List<DispatchSMSQ> blockedNumbers = dispatchSMSQList.stream().filter(t -> blockedNumbersSet.contains(t.getMdn())).collect(Collectors.toList());

System.out.print("blockedNumbers-->"+ blockedNumbers.size());

最佳答案

你可以这样做,

List<DispatchSMSQ> blockedNumbers = messagePermissionResponseDTOList.stream()
.filter(MessagePermissionResponseDTO::isBlocked)
.map(MessagePermissionResponseDTO::getPhoneNumber)
.collect(Collectors.collectingAndThen(Collectors.toSet(),
s -> dispatchSMSQList.stream()
.filter(d -> s.contains(d.getMdn())).collect(Collectors.toList())));

关于java - 从 2 个列表中过滤并使用 java8 获取匹配的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51984959/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com