一、list中元素为基础类型
使用hashset即可,例:
List<String> removeDup(List<String> list){
Set s = new HashSet<String>(list);
list.clear(); // 清空list
list.addAll(s);
return list;
}
二、元素类型为对象
1、修改对象的equals和hashset方法,再使用hashset
public class Menu {
private Long menuId;
private String sysShortName;
private Long parentId;
private String menuName;
//get set
@Override
public int hashCode() {
//修改hashcode
return this.getMenuId().hashCode();
}
@Override
public boolean equals(Object obj) {
if(obj==null||!(obj instanceof Menu)){
return false;
}
Menu m = (Menu)obj;//向下转型
//id相同则任务是同一个对象
return this.getMenuId().equals(m.getMenuId());
}
}
2、使用map去重,以Menu对象为例
//id相同即为重复
private List<Menu> removeDupMenu(List<Menu> menus){
Map<Long,Menu> map = new HashMap<Long, Menu>();
for(Menu menu:menus){
map.put(menu.getMenuId(), menu);
}
menus.clear();
menus.addAll(map.values());
return menus;
}