use*_*324 3 java string integer
我想用java出现ArrayList<String>的次数在java中排名.像这样:如果我有
ArrayList<String>= [French, English, German, French, French, Belgium, English, Belgium]
我计算"French", "English", "Belgium",etc.出现的数字.法语出现3次,英语2次,比利时2次,德语1次.然后我想对ArrayList<String>数字的函数进行排名.
结果将是:
French 3
English 2
Belgium 2
German 1
Run Code Online (Sandbox Code Playgroud)
我怎么能这样做?如何关联整数和字符串?
不要重新发明轮子并使用类的frequency方法Collections:
public static int frequency(Collection<?> c, Object o)
Run Code Online (Sandbox Code Playgroud)
返回指定集合中等于指定对象的元素数.更正式地,返回集合中元素e的数量,使得(o == null?e == null:o.equals(e)).
如果你需要计算所有元素的出现次数,请巧妙地使用Map和循环:)或者使用frequency上面的方法将列表放在Set中,并在集合的每个元素上循环.HTH
编辑/ Java 8:如果你想要一个功能更强大的Java 8单线程解决方案与lambdas,请尝试:
Map<String, Long> occurrences =
list.stream().collect(Collectors.groupingBy(w -> w, Collectors.counting()));
Run Code Online (Sandbox Code Playgroud)
然后按值对地图进行排序.
| 归档时间: |
|
| 查看次数: |
1982 次 |
| 最近记录: |