码迷,mamicode.com
首页 > 编程语言 > 详细

Java中对单个或多个字段进行排序

时间:2015-06-19 11:55:41      阅读:126      评论:0      收藏:0      [点我收藏+]

标签:

Java中对单个字段或多个字段进行排序

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

/**
 * @date: 2015年6月19日 上午10:11:44
 */

public class CollectionTest {
    /**
     * 主方法
     * 
     * @param args
     *            参数
     * @modify by user: {修改人} 2015年6月19日
     * @modify by reason:{原因}
     */
    public static void main(String[] args) {
        List<CollectionTest.Man> mans = new ArrayList<CollectionTest.Man>();
        CollectionTest collectionTest = new CollectionTest();
        Man man = collectionTest.new Man();
        man.setParentId(11);
        man.setAge(12);
        man.setName("某某1_孩子");
        Man man2 = collectionTest.new Man();
        man2.setParentId(2);
        man2.setAge(13);
        man2.setName("某某2_孩子");
        Man man3 = collectionTest.new Man();
        man3.setParentId(2);
        man3.setAge(16);
        man3.setName("某某1_孩子");
        mans.add(man);
        mans.add(man2);
        mans.add(man3);
        sortAge(mans);
        System.out.println("*****根据年龄排序********");
        System.out.println(mans.toString());
        sortParentIdAge(mans);
        System.out.println("*****根据父ID,年龄排序********");
        System.out.println(mans.toString());
    }

    /**
     * 根据父ID,年龄进行排序
     * 
     * @param mans
     *            人列表
     * @modify by user: {修改人} 2015年6月19日
     * @modify by reason:{原因}
     */
    private static void sortParentIdAge(List<Man> mans) {
        Collections.sort(mans, new Comparator<Man>() {
            @Override
            public int compare(Man o1, Man o2) {
                if (o1.getParentId().equals(o2.getParentId())) {
                    return o1.getAge().compareTo(o2.getAge());
                } else {
                    return o1.getParentId().compareTo(o2.getParentId());
                }
            }
        });
    }

    /**
     * 根据父ID排序
     * 
     * @param mans
     * @modify by user: {修改人} 2015年6月19日
     * @modify by reason:{原因}
     */
    private static void sortAge(List<Man> mans) {
        Collections.sort(mans, new Comparator<Man>() {
            @Override
            public int compare(Man o1, Man o2) {
                return o1.getAge().compareTo(o2.getAge());
            }
        });
    }

    public class Man {
        
        private Integer parentId;

        private Integer age;

        private String name;

        /**
         * 获取parentId
         * 
         * @return parentId parentId
         */
        public Integer getParentId() {
            return parentId;

        }

        /**
         * 设置parentId
         * 
         * @param parentId
         *            parentId
         */
        public void setParentId(Integer parentId) {
            this.parentId = parentId;
        }

        /**
         * 获取age
         * 
         * @return age age
         */
        public Integer getAge() {
            return age;

        }

        /**
         * 设置age
         * 
         * @param age
         *            age
         */
        public void setAge(Integer age) {
            this.age = age;
        }

        /**
         * 获取name
         * 
         * @return name name
         */
        public String getName() {
            return name;

        }

        /**
         * 设置name
         * 
         * @param name
         *            name
         */
        public void setName(String name) {
            this.name = name;
        }

        /**
         * @return
         * @modify by user: {修改人} 2015年6月19日
         * @modify by reason:{原因}
         */
        @Override
        public String toString() {
            return "Man [parentId=" + parentId + ", age=" + age + ", name=" + name + "]";
        }

    }
}


Java中对单个或多个字段进行排序

标签:

原文地址:http://blog.csdn.net/baidu_18607183/article/details/46559113

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!