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

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

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值