java - 如何检查一个树集中至少包含另一个树集中的一个项目
问题描述
我有一个包含用户选择的项目的树集,我正在尝试检查另一个包含所有项目的基本树集。如果用户选择的集合至少包含基础树集中的一项,我应该返回 true。
这是我的代码:
Set<String> baseItems = new TreeSet<String>Arrays.asList("HEALTH","SPORTS","GAMES","COURSE","FITNESS"));
Set<String> userItems = getRequestedItems();
// userItems has values like HEALTH,SPORTS
// if userItems contains or match with any items in the baseItems list it should return true.
boolean isMatch = requestedApiPillars.contains(apiPillars); // this returning class cast exception.
如何比较 userSet 和 baseItems 以确保他们选择了特定项目?
解决方案
您可以使用Collections.disjoint():
boolean isMatch = (! userItems.isEmpty()) && (! Collections.disjoint(baseItems, userItems));
具体来说,如果 的至少一个成员baseItems
也在 中userItems
,则集合不是不相交的。
推荐阅读
- azure-cosmosdb - 在 Cosmos DB 中创建数据库/集合是否需要花费一些东西?
- django-views - openshift django 打开并写入文本文件
- c# - 单击 div 元素父级时如何将密钥发送到临时创建的输入元素?
- asp.net-core - 如何覆盖 ASP.NET Core 配置数组设置以减少数组的长度
- discord - 如何回复发送给机器人的任何 DM?
- javascript - VueJs:通过路由防止在 IOS10+ 上弹跳和缩放
- python - 谷歌数据存储:ndb.put_multi 不返回
- java - 如何为单元测试覆盖 insertable=false
- mongodb - 无法从我的手机连接到本地主机
- iis - 处理 IIS 低级错误