java 通过实现Comparable接口使用Collections.sort排序 及 利用set的特性对 list 进行去重...

本文详细介绍如何在Java中通过实现Comparable接口并重写compareTo方法,对自定义类进行排序。并通过实例展示了如何使用Collections.sort()对包含自定义类型的列表进行排序,包括默认排序、逆序排序和随机排序。此外,还提供了利用Set对List进行去重的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

示例:实体类实现Comparable接口,重写compareTo方法

public class Person implements Comparable<Person>{
    private String personId;
    private String rate;
    
        ......

    @Override
    public int compareTo(Person o) {
        if(o.getRate().equals(this.getRate())){
            return 0;
        }
        if(Double.parseDouble(this.getRate()) < Double.parseDouble(o.getRate())){
                     return -1;
                }
        if(Double.parseDouble(this.getRate()) > Double.parseDouble(o.getRate())){
                     return 1;
                }
        return 0;
    }    
}

Collections的使用

    public static void main(String[] args) {
        
        List<Person> ll = new ArrayList<Person>();
        
        ll.add(new Person("1","0.1"));
        ll.add(new Person("4","0.4"));
        ll.add(new Person("2","0.2"));
        ll.add(new Person("3","0.3"));
        
        //遍历输出结果   1  4  2  3    
        
        //默认排序(从小到大)
        Collections.sort(ll);//遍历输出结果   1  2  3  4    
//从大到小,先默认排序再反转 Collections.sort(ll); Collections.reverse(ll);//遍历输出结果 4 3 2 1
//随机排序,所有置换发生的可能性都是大致相等的 Collections.shuffle(ll);//遍历输出结果 1 3 4 2 }

另:加 利用set对list进行去重

        Set set = new  HashSet();
        List<Person> newList = new ArrayList<Person>();
        for (Person p:ll) {
            if(set.add(p)){
                newList.add(p);
            }
        }
        System.out.println( "去重后的集合: " + newList);

 

转载于:https://www.cnblogs.com/xinzhisoft/p/10064705.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值