java List<<Map>> List<Map<String,Object>> 根据根据指定字段去重

java List<> List> 根据根据指定字段去重

  • 仔细看你会懂得哦.不懂可以try一下吗。 你说呢。
  • 其实这里都是基础,Map 的 key 是唯一的这么一个知识点。
  • 我们要打好基础各位大佬。
//最终去重后的ListMap
List<Map<String, Object>> listMap = new ArrayList<>();
			// msp存放过滤后的Map 将ID当key 将去掉的ID的map当value。 因为Map 中的key(键)是唯一的,刚好可以去重。
			Map<String, Map> msp = new HashMap<>();
			//approveRecordList 是要去重的List,这里用的是从后面先取出来。那就是说会去重后面的值,保留前面的值,因为先存后面的value吗,然后前面有的话就会将前面的覆盖掉,就实现了去重。
			for(int i = approveRecordList.size()-1 ; i>=0; i--){
			//从后获取 Map
				Map map = approveRecordList.get(i);
				//我这里指定的是根据ClueID去重。你们可以换成你们要去重复的字段。
				String id = (String)map.get("ClueID");
				//删除现有Map中你所指定的字段。
				map.remove("ClueID");
				//存入msp 中,以你所指定的字段值当key,去掉的所指定的那个字段当值。
				msp.put(id, map);
			}
			//其实上面已经做好去重啦。我们只需要将key再次循环送到Map中就好啦
			Set<String> mspKey = msp.keySet();
			for(String key: mspKey){
				//获取没有指定字段的Map
				Map newMap = msp.get(key);
				//然后将指定字段塞入Map
				newMap.put("ClueID", key);
				//最后返回我们上面写好的ListMap返回。
				listMap.add(newMap);
			}

你可能感兴趣的:(java基础,java,开发语言)