类中只有这class Role_permission{
private Integer id; private Integer rid; private Integer pid;}
重写这两个方法 判断规则pid一致我就认为两个比较的类相同
@Overridepublic boolean equals(Object obj) { if (obj == null) { return false; } if (this == obj) { return true; } if (obj instanceof Role_permission) { Role_permission rp = (Role_permission) obj; if (rp.pid.equals(this.pid)) {//添加自己的规则true为相同 return true; } else { return false; } } return false;} @Overridepublic int hashCode() { int result = pid.hashCode();//添加自己的规则也是一样 return result;}第一种方案
List<Role_permission> list1 = new ArrayList<Role_permission>(new LinkedHashSet<>(去重集合)); 第二种方案
List<Role_permission> personList = new ArrayList<>();
去重集合.stream().forEach(
p -> { if (!personList.contains(p)) { personList.add(p); } });第三种方案
Set<Role_permission> ts = new HashSet<Role_permission>();ts.addAll(去重集合); 原理应该跟第一种类似 第四种方案
List<Role_permission> unique =去重集合.stream().collect(collectingAndThen(toCollection(() -> new TreeSet<>(comparingLong(Role_permission::getPid))), ArrayList::new));
原文地址:https://www.cnblogs.com/jiahaoJAVA/p/10868823.html
时间: 2024-10-12 17:51:22