Java 如何在列表中获取包含更多实例的字符串
我有一个字符串列表,我试图有一个方法告诉我哪个字符串在列表中出现的次数更多 以下是我迄今为止所做的工作:Java 如何在列表中获取包含更多实例的字符串,java,Java,我有一个字符串列表,我试图有一个方法告诉我哪个字符串在列表中出现的次数更多 以下是我迄今为止所做的工作: package codekata; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class OcurrenciasEnLista { public static void main(String[] args)
package codekata;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class OcurrenciasEnLista {
public static void main(String[] args) {
List<String> lista = new ArrayList<String>();
lista.add("test");
lista.add("foo");
lista.add("foo");
lista.add("foo");
lista.add("bar");
lista.add("crack");
moreOftenWord(lista);
}
private static void moreOftenWord(List<String> lista) {
Map<String, Integer> mapa = new HashMap<String, Integer>();
for (String palabra: lista)
addOrIncrementCount(mapa, palabra);
}
private static void addOrIncrementCount(Map<String, Integer> counters,
String toAdd) {
Integer currValue = counters.get(toAdd);
if (currValue == null)
counters.put(toAdd, 1);
else
{
counters.put(toAdd, currValue + 1);
}
}
}
我不知道怎么做的是返回——单词——已经在moreOftenWord方法中了
有谁能给我一个线索吗?列表中最常见的元素称为列表中的元素 是列表java模式的第一个结果,在需要代码示例的情况下,它看起来是相关的 要在构建计数器映射后获得最常见的元素,您可能需要执行以下操作
Map.Entry<String, Integer> mode = null;
for (Map.Entry<String, Integer> e : counters.entrySet()) {
if (mode == null || mode.value() < e.value()) {
mode = e;
}
}
// Most common string in mode.getKey()
泛指
Map<String, Integer> counters
数据结构维护添加到其中的每个元素的计数。因此,如果您使用此选项,可以删除所有样板代码。然后,您所需要做的就是遍历Multiset并找到具有最大计数的元素
Guava库有许多这样有用的数据结构和更多。如前所述。是一个支持数据流的库。以下节目:
System.out.println(
Seq.of("test", "foo", "foo", "foo", "bar", "crack")
.mode()
);
收益率:
Optional[foo]
免责声明:我为jOOλ背后的公司工作
Optional[foo]