List集合去除重复对象。。。记录一下

类中只有这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-08-06 01:52:14

List集合去除重复对象。。。记录一下的相关文章

list集合去除重复对象的实现

下面小编就为大家带来一篇list集合去除重复对象的实现.小编觉得挺不错的,现在就分享给大家,也给大家做个参考.一起跟随小编过来看看吧 对象重复是指对象里面的变量的值都相等,并不定是地址.list集合存储的类型是基础类型还比较好办,直接把list集合转换成set集合就会自动去除. 当set集合存储的是对象类型时,需要在对象的实体类里面重写public boolean equals(Object obj) {} 和 public int hashCode() {} 两个方法. public Stri

List集合去除重复数据

[转自]Java中List集合去除重复数据的方法 1. 循环list中的所有元素然后删除重复 public static List removeDuplicate(List list) { for ( int i = 0 ; i < list.size() - 1 ; i ++ ) { for ( int j = list.size() - 1 ; j > i; j -- ) { if (list.get(j).equals(list.get(i))) { list.remove(j); }

List集合去除重复元素,不打乱顺序(数组转List)

//数组转List List<String> objStr_0_List = Arrays.asList(objArr[0].split("#,#")); //List集合去除重复元素,不打乱顺序 private List<String> getNon_repeatList(List<String> Str_List) { List<String> resultList = new ArrayList<String>(); S

Distinct和Group by去除重复字段记录

重复记录 有两个意义,一是完全重复的记录,也即所有字段均重复的记录 二是部分关键字段重复的记录,比如Name字段重复,而其他字段不一定重复或都重复可以忽略. 1.对于第一种重复,比较容易解决,使用 select distinct * from tableName 就可以得到无重复记录的结果集. 如果该表需要删除重复的记录(重复记录保留1条),可以按以下方法删除 select distinct * into #Tmp from tableName drop table tableName sele

Java中List集合去除重复数据的方法

1. 循环list中的所有元素然后删除重复 public static List removeDuplicate(List list) { for ( int i = 0 ; i < list.size() - 1 ; i ++ ) { for ( int j = list.size() - 1 ; j > i; j -- ) { if (list.get(j).equals(list.get(i))) { list.remove(j); } } } return list; } 2. 通过H

2017.4.20 ArrayList去除重复对象

public ArrayList getSingleList(ArrayList list){    ArrayList newList = new ArrayList();    Iterator iterator = list.iterator();    while (iterator.hasNext()){        Object obj = iterator.next();        if (!newList.contains(obj)){            newList

Python 迭代删除重复项,集合删除重复项

1. 迭代删除重复项:先排序列表项,然后通过新迭代(not in)去除重复项,分片打印 def sanitize(time_string): if '-' in time_string: splitter = '-' elif ':' in time_string: splitter = ':' else: return (time_string) (mins, secs)=time_string.split(splitter) return(mins + '.' + secs) with op

java集合 collection-list-ArrayList 将自定义对象作为元素存到ArrayList集合中,并去除重复元素。

import java.util.*; /* 将自定义对象作为元素存到ArrayList集合中,并去除重复元素. 比如:存人对象.同姓名同年龄,视为同一个人.为重复元素. 思路: 1,对人描述,将数据封装进人对象. 2,定义容器,将人存入. 3,取出. List集合判断元素是否相同,依据是元素的equals方法. */ class Person { private String name; private int age; Person(String name,int age) { this.n

去除list集合中重复项的几种方法

http://www.cnblogs.com/fengri/archive/2013/10/10/3361174.html ? 因为用到list,要去除重复数据,尝试了几种方法.记录于此... 测试数据: List<string> li1 = new List<string> { "8", "8", "9", "9" ,"0","9"}; List<stri