使用java8新特性stream进行List去重
List newList = list.stream().distinct().collect(Collectors.toList());
System.out.println("java8新特性stream去重:"+newList);
需求 | list的方法 | 说明 | 备注 |
---|---|---|---|
交集 | listA.retainAll(listB) | listA内容变为listA和listB都存在的对象 | listB不变 |
差集 | listA.removeAll(listB) | listA中存在的listB的内容去重 | listB不变 |
并集 | listA.removeAll(listB) listA.addAll(listB) | 为了去重,listA先取差集,然后追加全部的listB | listB不变 |
如果list是对象需要重写它的equals方法
@Override
public boolean equals(Object obj)
{
if (obj == null)
{
return false;
}
return name == null ? false : this.id.equals(((SysMenu) obj).getId());
}