首页 > 解决方案 > 如何检查一个树集中至少包含另一个树集中的一个项目

问题描述

我有一个包含用户选择的项目的树集,我正在尝试检查另一个包含所有项目的基本树集。如果用户选择的集合至少包含基础树集中的一项,我应该返回 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 以确保他们选择了特定项目?

标签: java

解决方案


您可以使用Collections.disjoint()

boolean isMatch = (! userItems.isEmpty()) && (! Collections.disjoint(baseItems, userItems));

具体来说,如果 的至少一个成员baseItems也在 中userItems,则集合不是不相交的。


推荐阅读