小编典典

Java计数数组中每个项目的出现

java

有什么方法可以计算数组中每个项目的出现?

可以说我有:

String[] array = {"name1","name2","name3","name4", "name5"};

这里的输出将是:

name1 1
name2 1
name3 1
name4 1
name5 1

如果我有:

String[] array = {"name1","name1","name2","name2", "name2"};

输出为:

name1 2
name2 3

这里的输出只是为了展示预期的结果。


阅读 267

收藏
2020-03-16

共2个答案

小编典典

你可以使用MultiSet来自Google Collections / Guava的或Bag来自Apache Commons的。

如果你有一个集合而不是一个数组,则可以用于addAll()将整个内容添加到上述数据结构中,然后将该count()方法应用于每个值。一个SortedMultiSetSortedBag会给你以定义的顺序的项目。

Google Collections实际上具有从数组转换为的非常方便的方法SortedMultiset

2020-03-16
小编典典

List asList = Arrays.asList(array);
Set<String> mySet = new HashSet<String>(asList);
for(String s: mySet){

 System.out.println(s + " " +Collections.frequency(asList,s));

}
2020-03-16