Fav*_*las 26 java arrays count
是否有任何方法可以计算数组上每个项目的出现次数?
让我们说:
String[] array = {"name1","name2","name3","name4", "name5"};
Run Code Online (Sandbox Code Playgroud)
这里的输出将是:
name1 1
name2 1
name3 1
name4 1
name5 1
Run Code Online (Sandbox Code Playgroud)
如果我有:
String[] array = {"name1","name1","name2","name2", "name2"};
Run Code Online (Sandbox Code Playgroud)
输出将是:
name1 2
name2 3
Run Code Online (Sandbox Code Playgroud)
这里的输出只是为了证明预期的结果.
Dam*_*ian 38
List asList = Arrays.asList(array);
Set<String> mySet = new HashSet<String>(asList);
for(String s: mySet){
System.out.println(s + " " +Collections.frequency(asList,s));
}
Run Code Online (Sandbox Code Playgroud)
Ale*_* C. 27
使用java-8,你可以这样做:
String[] array = {"name1","name2","name3","name4", "name5", "name2"};
Arrays.stream(array)
.collect(Collectors.groupingBy(s -> s))
.forEach((k, v) -> System.out.println(k+" "+v.size()));
Run Code Online (Sandbox Code Playgroud)
输出:
name5 1
name4 1
name3 1
name2 2
name1 1
Run Code Online (Sandbox Code Playgroud)
它的作用是:
Stream<String>从原始数组创建一个Map<String, List<String>>如果你想获得一个Map包含每个单词出现次数的数据,可以这样做:
Map<String, Long> map = Arrays.stream(array)
.collect(Collectors.groupingBy(s -> s, Collectors.counting()));
Run Code Online (Sandbox Code Playgroud)
有关更多信息:
希望能帮助到你!:)
小智 5
使用 HashMap 就像在公园散步一样。
main(){
String[] array ={"a","ab","a","abc","abc","a","ab","ab","a"};
Map<String,Integer> hm = new HashMap();
for(String x:array){
if(!hm.containsKey(x)){
hm.put(x,1);
}else{
hm.put(x, hm.get(x)+1);
}
}
System.out.println(hm);
}
Run Code Online (Sandbox Code Playgroud)