java-在不同对象类型的列表之间设置操作
发布时间:2022-03-09 01:45:41 350
相关标签: # php
我有两张单子,一张List
还有List
。一个列表是服务器上的本地用户,另一个列表包含通过gRPC获得的来自另一台服务器的用户。它们可能是新的,存在于我们的系统中,需要更新,或者不活动(它们存在于第一个列表中,但不在第二个列表中)。
为了确定哪些用户是哪些用户,我想在这些列表之间执行set操作,但是这些列表是在不同类型的对象之间执行的。为了解决这个问题,我发现了一个使用流的set操作的实现,但它们有点麻烦,而且很难阅读:
// This operation returns a difference between remote users and local users
// signifies new users that don't yet exist on the server
List newUsers = remoteUsers.stream()
.filter(remoteUser ->
localUsers.stream().noneMatch(
localUser ->
localUser.getUserName().equals(checkAddPrefix(remoteUser.getLogin())))).collect(Collectors.toList());
我意识到我可以通过做一些双for循环来消除流的模糊性,但无论如何。。。
查找非活动用户与上面相同,列表切换。
两个组之间的普通用户可以通过
remoteUsers.removeAll(newRemoteUsers)
在不同对象类型的列表之间执行集合操作是否有更干净的方法?差分运算的时间复杂度是O(m * n)
对于m = len(localusers), n = len(remoteUsers)
.
我能做得更好吗?
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报