比如得到的List中有10個User對象,現在要求UserName相同的對象只保留一個,下面給大家介紹兩種較簡便的方法,
方法一:首先建一個空的list1和一個HashMap,然后對List進行for循環,在for循環中得到List中的User對象,將User對象的UserName放到Map中(map中的key和value可以都是user的userName),如下:
List<User> list1= new ArrayList<User>(); HashMap<String, String> hashMap = new HashMap<String, String>(); for (User user : ListUSer) { if (user == null) { continue; } String userName = user.getUserName(); if (userName != null) { // String listIdStr = listId.longValue() + ""; String value = hashMap.get(userName); if (StringUtils.isBlank(value)) { //如果value是空的 說明取到的這個userName是第一次取到 hashMap.put(userName, userName); list1.add(user); //list1就是我們想要的去重之后的結果 } else { continue; } } } hashMap.clear();//結束了記得將hashMap請一個,內存能夠得到及時的釋放
方法二:同樣建一個空的list2,和一個空的set(和方法一的區別就是方法一用的是map,方法二用的是set)
List<User> list1= new ArrayList<User>(); Set<String> set=new HashSet<String>(); for (User user : ListUSer) { if (user == null) { continue; } String userName = user.getUserName(); if (userName != null) { if (!set.contains(userName)) { //set中不包含重復的 set.add(userName); list1.add(user); } else { continue; } } } set.clear();