java - 从多个集合中找到最大匹配计数集合

标签 java algorithm count

我正在寻找最佳解决方案来查找具有最大字符串匹配的匹配集。 这是示例,

inSet = ["a","b","c","x"]

其他套装列表

set1 = ["a","d","q","s"]
set2 = ["a","m","t","b","z"]
set3 = ["a","x","b","s","r","t"]

在上面的例子中,set3 是最大值。匹配数 (3)。

什么是用最少的执行找到的最佳算法。 任何指示或建议表示赞赏。

最佳答案

让我们有Set<String> setGuava.Sets:

Set<Set<String>> set = new Set<>();
//add Set<String>s
Set<String> maxMatchSet = set.stream()
                              .max(Comparator.comparingInt((value -> Sets.intersection(value, inSet).size()))
                              .get();

好的,现在来一些理论。 ["a", "b"]不是集合而是数组(或列表)。 Java 中有不同的数据结构。集合在 {} 中表示.

无论如何,重要的是代码。

Set<String> set = new HashSet<>();

将初始化Set

List<String> list = new ArrayList<>();

将初始化List 。还有另一种选择:

String[] array = new String[3];

将初始化大小为 3 的新数组。数组是固定长度的。

关于java - 从多个集合中找到最大匹配计数集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41228065/

相关文章:

java - Toolkit.getDefaultToolkit().createImage() 与 ImageIO.read()

c++ - std::unique 合并

algorithm - 预序和与中序遍历的关系

python - 超出分区列表问题的时间限制

sql - 获取 postgres 的计数总和

mysql - 统计 SQL 查询结果的出现次数

php - MYSQL>PHP - 与检查表是否包含一行用户详细信息的函数相关的查询出现问题

java - Linksys 路由器 Web 管理 - 在 .NET 中自动登录

java - BufferedImage 的后台创建以及与信号量的同步

Java Android 滑动调整图像大小