首先 写出 一个person类 让他继承Comparable 构造函数和get/set不用说

我们要覆盖父类中的comparto方法 代码如下 省略get/set

package a;

public class Person implements Comparable<Person> {
	private int age;
	private String name;

	public Person(int age, String name) {
		this.age = age;
		this.name = name;
	}
	public int compareTo(Person o) {
		return this.getAge()-o.getAge();
	}

	public void show(){
		System.out.println("姓名    "  +name +" 年龄 "+age);
	}

}

测试代码如下 不用解释...

package a;

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

public class TestComparable {
    public static void main(String args[]) {

        List<Person> listCat1 = new ArrayList<Person>();
        listCat1.add(new Person(35, "hlf"));
        listCat1.add(new Person(36, "ddd"));
        listCat1.add(new Person(38, "xxx"));

        System.out.println("调用Collections.sort(List<T> list)listCat2升序排序:");
        Collections.sort(listCat1);
        for (int i = 0; i < listCat1.size(); i++) {
            listCat1.get(i).show();
        }

        System.out.println("降序排列元素:");
        Collections.sort(listCat1, Collections.reverseOrder());
        for (int i = 0; i < listCat1.size(); i++) {
            listCat1.get(i).show();
        }
        System.out.println("Collections.reverse 从列表中最后一个元素开始输出:");
        Collections.reverse(listCat1);
        for (int i = 0; i < listCat1.size(); i++) {
            listCat1.get(i).show();
        }
    }
}

测试结果

调用Collections.sort(List<T> list)listCat2升序排序:

姓名    hlf 年龄 35

姓名    ddd 年龄 36

姓名    xxx 年龄 38

降序排列元素:

姓名    xxx 年龄 38

姓名    ddd 年龄 36

姓名    hlf 年龄 35

Collections.reverse 从列表中最后一个元素开始输出:

姓名    hlf 年龄 35

姓名    ddd 年龄 36

姓名    xxx 年龄 38

这个咱们是以 int类型来排序 如果是想按照string来排序 很简单 person类中的 compareto改成如下就ok

    public int compareTo(Person o) {
       return this.getName().compareTo(o.getName());
    }

参考资料

java 集合排序    http://www.cnblogs.com/standcloud/articles/2601914.html

collection 中对类排序的更多相关文章

  1. Comparable接口——容器中自定义类排序

    1.容器TreeMap,默认根据Key对象中某个属性的从小到大排列元素. (1)如下代码示例,Key是整型数字,所以按照其从小到大的顺序排列 public class TestTreeMap { pu ...

  2. 《Entity Framework 6 Recipes》中文翻译系列 (16) -----第三章 查询之左连接和在TPH中通过派生类排序

    翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 3-10应用左连接 问题 你想使用左外连接来合并两个实体的属性. 解决方案 假设你有 ...

  3. 在含有null值的复杂类的集合(Collection)中取最大值

    在日常编程中,经常遇到要在一组复杂类的集合(Collection)中做比较.取最大值或最小值. 举个最简单的例子,我们要在一个如下结构的集合中选取包含最大值的元素: public class Clas ...

  4. SortedSet的实现类是TreeSet:它的作用是字为添加到TreeSet中的元素排序。

      SortedSet可自动为元素排序. SortedSet的实现类是TreeSet:它的作用是字为添加到TreeSet中的元素排序.   练习:自定义类用TreeSet排序. 与HashSet不同, ...

  5. java工具类之按对象中某属性排序

    import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang ...

  6. 集合类中的Collection接口实现类

    今天学习一下集合包里面的内容,常见的有Collection和Map两个接口的实现类Collection中常见的又分为两种: 1.List ,支持放入重复的对象,实现类有arraylist,linked ...

  7. Python中自定义类未定义__lt__方法使用sort/sorted排序会怎么处理?

    在<第8.23节 Python中使用sort/sorted排序与"富比较"方法的关系分析>中介绍了排序方法sort和函数sorted在没有提供key参数的情况下默认调用 ...

  8. 有关collection中的一些数据结构

    Collection接口 Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements).一些Collection允许相同的元素 ...

  9. 【Java并发编程】5、java中ConcurrentLinkedQueue类

    一.类结构: java.lang.Object java.util.AbstractCollection<E> java.util.AbstractQueue<E> java. ...

随机推荐

  1. hibernate--HelloWorld

    本次学习版本:hibernate-release-5.2.6.Final,要求java 1.8 和JDBC 4.2. hibernate是一个开放源代码的对象关系映射框架.对JDBC进行了非常轻量的封 ...

  2. [UOJ UNR#1]奇怪的线段树

    来自FallDream的博客,未经允许,请勿转载, 谢谢. 原题可以到UOJ看,传送门 如果存在一个点是白的,却有儿子是黑的,显然无解. 不然的话,只要所有黑色的“黑叶子”节点,即没有黑色的儿子的节点 ...

  3. UVA 11584 划分回文字串

    将其划分为尽可能少的回文串 dp[i] = min(dp[i],dp[j] + 1)    来表示j+1~i是回文串 #include <iostream> #include <cs ...

  4. hdu 4747 线段树

    Mex Time Limit: 15000/5000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others)Total Submis ...

  5. 智能优化算法对TSP问题的求解研究

    要求: TSP 算法(Traveling Salesman Problem)是指给定 n 个城市和各个城市之间的距离,要 求确定一条经过各个城市当且仅当一次的最短路径,它是一种典型的优化组合问题,其最 ...

  6. 求n的阶乘

    import java.util.Scanner; public class J {  public static void main(String args[])  {   //注释:int n=6 ...

  7. Tensorflow从入门到精通之——Tensorflow基本操作

    前边的章节介绍了什么是Tensorflow,本节将带大家真正走进Tensorflow的世界,学习Tensorflow一些基本的操作及使用方法.同时也欢迎大家关注我们的网站和系列教程:http://ww ...

  8. curl支持HTTP和https

    设计流程 基于curl工具实现https/http,设计初步流程为:linux平台验证→→交叉移植arm板. linux系统下调试http和https 1.1 Linux安装curl 输入命令:sud ...

  9. c# datatable增加列并赋值

    DataView dv = DataObj.GetBmfzr("03").Tables[0].DefaultView; dv.Sort = "bmbh"; Da ...

  10. js遍历 for-of

    for-of遍历 entries() 返回一个遍历器对象,用来遍历[键名, 键值]组成的数组.对于数组,键名就是索引值:对于 Set,键名与键值相同.Map 结构的 Iterator 接口,默认就是调 ...