集合去重
《阿里巴巴 Java 开发手册》的描述如下:
可以利用 Set 元素唯一的特性,可以快速对一个集合进行去重操作,避免使用 List 的 contains() 进行遍历去重或者判断包含操作。
去重代码
public static <T> Set<T> removeDuplicateBySet(List<T> data) {
if (CollectionUtils.isEmpty(data)) {
return new HashSet<>();
}
return new HashSet<>(data);
}
实验一下
//利用set去重
Set<Integer>set=removeDuplicateBySet(arraylist);
set.forEach(System.out::print);
注意:如果对象是常规类型 可以直接去重,如果是自定义类型,那么需要重写equal()和hashcode();
将list转换成Map类型
Map<String, String> map = list.stream().collect(Collectors.toMap(Person::getId, Person::getName));
// 如果报 map里的value空指针异常,则需要在value,也就是toMap()的第二个参数进行空(null)值的判断逻辑;例如:也就是 Person::getName 改成 p -> p.getName()==null?"":p.getName()就可以解决value为null问题