【问题标题】:Searching in HashSet在 HashSet 中搜索
【发布时间】:2013-08-27 15:38:03
【问题描述】:

我有 2 个哈希集

Set<String> firstSet = new HashSet<String>();
Set<String> secondSet= new HashSet<String>();

假设

firstSet 包含字符串为[A-ABC,B-BCD,C-CDE,D-DEF,L-POK];

secondSet 包含字符串为[A,B,C,D,L,K,M];

我可以在没有for loop 的情况下拆分 firstSet 中的每个元素,例如 [A,B,C] 然后再做

firstSet.contains(secondSet);

或者他们有什么合适的方法吗?

【问题讨论】:

  • 您想获取 firstSet 中包含 secondSet 子集的所有元素吗?你想要的输出应该是什么?
  • @Rohit 输出是从第一个集合中获取第二个集合中存在的所有元素为 [A,B,C,D,L]。希望清楚。
  • 嗨 Rohit...是的,实际上我想获取 firstSet 的所有元素,它们包含 secondSet 中的子集。他们有什么方法可以使用 Collections 来实现这一目标。

标签: java search generics collections


【解决方案1】:

将 firstSet 改为 Map。

final Map map<String, String> = new HashMap<String, String();
map.put("A", "ABC");
map.put("B", "BCD");
...


map.keySet().containsAll(secondSet);

如果这不能解决您的问题,也许您可​​以更详细地解释您要完成的工作。如果不遍历集合中的每个元素,就无法对集合中的每个元素进行操作。

【讨论】:

  • 输出是从第一个集合中获取第二个集合中存在的所有元素,例如 [A,B,C,D,L]。我们仍然可以使用 HashSet 而不是使用 HashMap 吗?是有可能吗?
  • 第二组中的所有元素都不存在于第一组中。如果要解析第一个集合的内容以查看元素是否以第二个集合中的元素开头,那么您必须自己查看每个条目。
猜你喜欢
  • 1970-01-01
  • 2017-11-18
  • 1970-01-01
  • 1970-01-01
  • 2017-04-29
  • 1970-01-01
  • 2018-06-21
  • 1970-01-01
  • 2019-03-29
相关资源
最近更新 更多