list排序问题解决

来源:互联网 发布:php 自动实例化类 编辑:程序博客网 时间:2024/06/07 18:33

在工作中遇到一个问题,根据视图查询数据的时候,因为不能修改视图脚本,没办法根据具体字段进行排序,所以只能将查询出来的数据在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;    }}
原创粉丝点击