输出数组中相同的元素以及个数

最近根据公司要求在处理数据库中的部分信息,要实现的效果就是查看数组中相同的元素以及相同元素的个数,对于我们来说最容易想到的就是依次从数据库中取出数据,然后和该元素后面的一个开始依次进行比较匹配,当判断相同的时候,执行+1操作,然后标记此元素已经被匹配,直到最后的数据结束,然后再匹配进行第二条。。。

首先不考虑这样做的结果的正确性,这样的匹配算法会面临一个最简单的问题,那就是数据量稍微大的情况下处理会很慢,效率很低。。。

在用java语言实现的过程中,想到了java中提供的有HashMap方法,于是查了其所对应的API文档

对于基础的hashmap介绍,http://blog.youkuaiyun.com/haitaofeiyang/article/details/5530816这哥们写的很详细,可以参考下,感觉自己再看api写大概的也都是差不多,不如直接借用他人的果实。。。大笑

 

我的具体实现过程如下:

	public void comparesitename(List<String> list) {		
		HashMap<String, Integer> hash = new HashMap<String, Integer>();
		for (int i = 0; i < list.size(); i++) {
			try {
				if (!hash.isEmpty() && hash.containsKey(list.get(i))) {
					hash.put(list.get(i).toString(), hash.get(list.get(i)) + 1);
				} else {
					hash.put(list.get(i).toString(), 1);
				}
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
		Set<String> set = hash.keySet();
		for (String key : set) {
			//key代表的是元素,hash.get(key)代表的是出现的次数		
			System.out.println("有"+hash.get(key)+"条走了”"+key+"“这条路"+"   可共用一条规则");
		}
	}

其中list集合是从数据库中得到的。

 

待续。。。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值