List集合去除重复

    private Comparator<Role> roleComparator = new Comparator<Role>() {
        public int compare(Role r1, Role r2) {
            return r1.getCode().compareTo(r2.getCode());
        }
    };
 
//调用方法:
    Set<Role> results = new TreeSet<Role>(this.roleComparator);
        Iterator<Role> it = this.entity.getRoles().iterator();
 
        while (it.hasNext()) {
            Role role = (Role) it.next();
                results.add(role);
        }  
//或者:
        Set<Role> roles = new TreeSet<Role>(this.roleComparator);
            roles.addAll(selectAiUserRole.getRoles());
            
 
### Java List集合去重的方法 在Java编程中,有多种方式可以实现`List`集合中的元素去重操作。 #### 使用Apache Commons Collections库的SetUtils类 通过引入外部依赖——Apache Commons Collections库,能够利用其提供的工具类简化开发工作。下面展示的是借助该库下的`SetUtils.unmodifiableSet()`函数配合`HashSet`完成列表内重复项清理的过程[^1]: ```java import org.apache.commons.collections4.SetUtils; import java.util.*; public class RemoveDuplicates { public static void main(String[] args){ List<String> list = Arrays.asList("apple", "banana", "orange", "apple"); list = new ArrayList<>(SetUtils.unmodifiableSet(new HashSet<>(list))); System.out.println(list); } } ``` 此法不仅实现了数据净化的目的,还额外赋予了结果集不可变特性,增强了程序的安全性和稳定性。 #### 利用LinkedHashSet保持原有顺序的同时移除冗余条目 对于那些在意原始排列次序的应用场合而言,采用内置于标准API里的`LinkedHashSet`不失为一种明智的选择。它既保留了成员间的先后关系,又能高效剔除非唯一实例[^2]: ```java import java.util.*; public class RemoveDuplicatesWithOrderPreserved{ public static void main(String[] args){ List<Integer> originalList = Arrays.asList(1, 2, 3, 2, 4, 5, 3); List<Integer> distinctElementsOnly = new ArrayList<>(new LinkedHashSet<>(originalList)); System.out.println(distinctElementsOnly); } } ``` 上述两种方案均能有效解决`List`容器中存在的多值困扰问题;然而,在实际项目里可能还会面临更多挑战性的状况,例如因历史原因造成的复杂结构或是第三方服务接口约束等因素带来的不便之处[^3].
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值