首先,描述一下场景,一个list中如果查询出来的数据存在两次或两次以上,则这几条数据需要从原始的数据中筛除掉。
代码如下:
public List<Map<String, Object>> getHostInfo(List<Map<String, Object>> list) { logger.error("getHostInfo list:" + JSONObject.toJSONString(list)); List<Map<String, Object>> resultList = new ArrayList<>(); List<Map<String, Object>> list2 = list; for (int i = 0; i < list.size(); i++) { List<Integer> list2Array = new ArrayList<>(); for (int j = 0; j < list2.size(); j++) { if (list.get(i).get("manageIp").toString().equals(list2.get(j).get("manageIp").toString())) { list2Array.add(j); } } if (list2Array.size() < 2) { resultList.add(list.get(i)); } } return resultList; }
实现思路:主要是标记法,标记每次遍历的元素,如果有两次,则把元素清除。
如果有其他实现思路的,欢迎大家一起分享!!