Lsit<Map>中的Map去重以及执行效率测试2

朋友提醒另一种方法,我试了一下效率极高,之前做的一比较真是蜗牛一样,下面贴出来!
// 新建set集合用于存放key值
		Set arr = new HashSet();
		// 新建集合用于接收去重过的Map
		List<Map<String, Object>> newlist = new ArrayList<Map<String, Object>>();

		for (int i = 0; i < list.size(); i++) {
			Map m = list.get(i);
			// 判断ppdz的值是否已经存在于key内
			if (arr.contains(m.get("ppdz"))) {
				continue;
			}
			//添加key的值进set
			arr.add(m.get("ppdz"));
			//储存进的集合
			newlist.add(m);
		}
		// 遍历得到结果
		for (Map m : newlist) {
			System.out.println(m.get("ppdz") + "    " + m.get("name"));
		}
效率是之前的8-10倍。。。。

猜你喜欢

转载自blog.csdn.net/new_yao/article/details/80704943