获取list集合中出现次数最多的一项及其出现的次数
程序员文章站
2024-01-14 09:06:40
...
前提准备
List<String> list = new ArrayList<>();
list.add("a");
list.add("a");
list.add("a");
list.add("b");
list.add("b");
list.add("c");
list.add("d");
list.add("d");
方法一
long start1 = System.currentTimeMillis();
Map<String,Integer> map = new HashMap<>();
for(String str:list){
Integer i = 1; //定义一个计数器,用来记录重复数据的个数
if(map.get(str) != null){
i=map.get(str)+1;
}
map.put(str,i);
}
System.out.println("重复数据的个数:"+map.toString());
int max=0;
String key = null;
for(Map.Entry<String,Integer> entry:map.entrySet()){
if(entry.getValue()>max){
max = entry.getValue();
key = entry.getKey();
}
}
long end1 = System.currentTimeMillis();
System.out.println("方法一 字符串 " + key + " 出现的最大次数:"+ max) ; //字符串 aa 出现的最大次数:4
System.out.print("重复的数据为:");
for(String s:map.keySet()){
if(map.get(s) > 1){
System.out.print(s+" ");
}
}
System.out.println("\n\n--------我是方法分界线---------\n");
方法二
long start2 = System.currentTimeMillis();
String regex;
Pattern p;
Matcher m;
String tmp = "";
String tot_str = list.toString();
//System.out.println(tot_str); //[aa, aa, aa, aa, bb, bb, cc, cc, dd, ed]
int max_cnt = 0;
String max_str = "";
for(String str : list) {
if (tmp.equals(str)) continue;
tmp = str;
regex = str;
p = Pattern.compile(regex);
m = p.matcher(tot_str);
int cnt = 0;
while(m.find()) {
cnt++;
}
//System.out.println(str + ":" + cnt);
if (cnt > max_cnt) {
max_cnt = cnt;
max_str = str;
}
}
long end2 = System.currentTimeMillis();
System.out.println("方法二 字符串 " + max_str + " 出现的最大次数:"+ max_cnt) ; //字符串 aa 出现的最大次数:4
System.out.println("方法一耗时:" + (end1 - start1)) ;
System.out.println("方法二耗时:" + (end2 - start2)) ;
System.out.println("总耗时:" + (end2 - start1)) ;
结果
重复数据的个数:{a=3, b=2, c=1, d=2}
方法一 字符串 a 出现的最大次数:3
重复的数据为:a b d
--------我是方法分界线---------
方法二 字符串 a 出现的最大次数:3
方法一耗时:1
方法二耗时:2
总耗时:3
推荐阅读
-
获取list集合中出现次数最多的一项及其出现的次数
-
javascript判断一个字符串或者数组里面出现最多的元素及其出现的次数(代码实例)
-
编写一个应用程序,利用数组或集合,求出四个字符串的平均长度以及字符出现重复次数最多的字符串
-
如何得到一个字符串中哪个字符出现的次数最多
-
php获取字符串中各个字符出现次数的方法
-
JS获取数组中出现次数最多元素的方法详解
-
PHP中substr_count()函数获取子字符串出现次数的方法,phpsubstr_count
-
PHP中substr_count()函数获取子字符串出现次数的方法
-
JavaScript求一个数组中重复出现次数最多的元素及其下标位置示例
-
JS获取数组中出现次数最多及第二多元素的方法