list排序问题解决

在工作中遇到一个问题,根据视图查询数据的时候,因为不能修改视图脚本,没办法根据具体字段进行排序,所以只能将查询出来的数据在java层面重新排序,所以就用到了list排序的解决方法,示例代码如下。

package com.lzf.demo.collection;

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

public class ComparatorTest {

    public static void main(String[] args) {
        People p1 = new People("张三",20,70,170);
        People p2 = new People("李四",21,65,174);
        People p3 = new People("王五",19,74,160);
        List<People> ls = new ArrayList<People>();
        ls.add(p1);
        ls.add(p2);
        ls.add(p3);
        Collections.sort(ls, new Comparator(){
            public int compare(Object o1, Object o2) {
                People p1 = (People)o1;
                People p2 = (People)o2;
                if(p1.Age>p2.Age){
                    return 1;
                }else if(p1.Age<p2.Age){
                    return -1;
                }else{
                    return 0;
                }
            }});
        System.out.println("根据年龄排序如下:");
        for(People p:ls){
            System.out.println("姓名:"+p.name + " 年龄:"+p.Age);
        }

        Collections.sort(ls, new Comparator(){
            public int compare(Object o1, Object o2) {
                People p1 = (People)o1;
                People p2 = (People)o2;
                if(p1.weight>p2.weight){
                    return 1;
                }else if(p1.weight<p2.weight){
                    return -1;
                }else{
                    return 0;
                }
            }});
        System.out.println("根据体重排序如下:");
        for(People p:ls){
            System.out.println("姓名:"+p.name + " 体重:"+p.weight);
        }

        Collections.sort(ls, new Comparator(){
            public int compare(Object o1, Object o2) {
                People p1 = (People)o1;
                People p2 = (People)o2;
                if(p1.height>p2.height){
                    return 1;
                }else if(p1.height<p2.height){
                    return -1;
                }else{
                    return 0;
                }
            }});
        System.out.println("根据身高排序如下:");
        for(People p:ls){
            System.out.println("姓名:"+p.name + " 体重:"+p.height);
        }

    }


}
class People{
    public String name;
    public int Age;
    public int weight;
    public int height;
    public People(String name,int niallin,int weight,int height ) {
        this.Age = niallin;
        this.weight = weight;
        this.height = height;
        this.name = name;

    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值