java 求一个list集合中出现次数最多的一项,和此项的出现次数

    //java 求一个list集合中出现次数最多的一项,和此项的出现次数 
      //效率很高的统计方法。利用正则表达式统计  
     @Test   
     public void st() {  
		    String regex;  
                    Pattern p;  
                    Matcher m;  
                    List<String> l =new ArrayList<String>();
                    l.add("a") ;
                    l.add("a") ;
                    l.add("b") ;
                    l.add("b") ;
                    l.add("b") ;
                    l.add("c") ;
                    l.add("d") ;
                    l.add("d") ;
                    String tmp = "";
                    String tot_str = l.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 : l) {  
                        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;  
                        }  
                    }         
                    System.out.println(" 出现的最大次数的字符串是 " + max_str) ;}

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值