对list集合重新排序

对list集合重新排序

1.排序 :重写compare 方法 升序排列返回1 降序返回-1
2.将集合顺序调换:Collections.reverse(list);

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

/**
 * 对list集合重新排序  升序排列返回1  降序返回-1
 */
public class ListTest {

    public static void main(String[] args) {
   
            List<ConsumeVo> list =new ArrayList<>();
            ConsumeVo consumeVo1=new ConsumeVo();
            consumeVo1.setTime(2);
            consumeVo1.setValue("2");
            ConsumeVo consumeVo2=new ConsumeVo();
            consumeVo2.setTime(1);
            consumeVo2.setValue("1");
            ConsumeVo consumeVo3=new ConsumeVo();
            consumeVo3.setTime(3);
            consumeVo3.setValue("3");
            ConsumeVo consumeVo4=new ConsumeVo();
            consumeVo4.setTime(4);
            consumeVo4.setValue("4");
            list.add(consumeVo1);
            list.add(consumeVo2);
            list.add(consumeVo3);
            list.add(consumeVo4);
            System.out.println("排序前:"+list.toString());
            for ( int  i =  0 ;i < list.size();i++){
                System.out.println(list.get(i));
            }

            Collections.sort(list, new Comparator<ConsumeVo>(){

                /*
                 * int compare(ConsumeVo o1, ConsumeVo o2) 返回一个基本类型的整型,
                 * 返回负数表示:o1 小于o2,
                 * 返回0 表示:o1和o2相等,
                 * 返回正数表示:o1大于o2。
                 */
                @Override
                public int compare(ConsumeVo o1, ConsumeVo o2) {

                    //按照time(次数)进行升序排列返回1  降序返回-1
                    if(Integer.valueOf(o1.getTime()) > Integer.valueOf(o2.getTime())){
                        return 1;
                    }
                    if(Integer.valueOf(o1.getTime()).equals(Integer.valueOf(o2.getTime()))){
                        return 0;
                    }

                    return -1;
                }
            });
            System.out.println("排序后:"+list.toString());
            for ( int  i =  0 ;i < list.size();i++){
                System.out.println(list.get(i));
            }


        Collections.reverse(list);
        System.out.println("倒序:"+list.toString());
        for ( int  i =  0 ;i < list.size();i++){
            System.out.println(list.get(i));
        }
        }
}


ConsumeVo类



/**
 * @author
 * @version 1.0
 * @Description:
 * @createDate
 **/
public class ConsumeVo {



    /**
     * 	值
     */
    private String value;

    /**
     * 	统计用时间字段显示()
     */
    private Integer time;

    public String getValue() {
        return value;
    }

    public void setValue(String value) {
        this.value = value;
    }

    public Integer getTime() {
        return time;
    }

    public void setTime(Integer time) {
        this.time = time;
    }

    @Override
    public String toString() {
        return "ConsumeVo{" +
                ", value='" + value + '\'' +
                ", time='" + time + '\'' +
                '}';
    }
}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值