首先 写出 一个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. xcode8的那些坑儿

    前几天手又贱,更新了xcode8....被几个坑玩坏了.最起码,字体改了,我现在还没有适应.下面列举了这两天遇到的问题 1.关于相册,照相,通讯录,麦克风的权限问题 xcode8打完包安装后,你会发现 ...

  2. CSS滚动条样式定制

    效果图如下 <!DOCTYPE html> <!-- saved from url=(0061)http://www.xuanfengge.com/demo/201311/scrol ...

  3. Python super使用

    一 基础使用 在类的继承中,如果重定义某个方法,该方法会覆盖父类的同名方法,但有时,我们希望能同时实现父类的功能,这时,我们就需要调用父类的方法了,可通过使用 super 来实现,比如: #!/usr ...

  4. [Luogu 3690]【模板】Link Cut Tree (动态树)

    Description 给定N个点以及每个点的权值,要你处理接下来的M个操作.操作有4种.操作从0到3编号.点从1到N编号. 0:后接两个整数(x,y),代表询问从x到y的路径上的点的权值的xor和. ...

  5. [HNOI2014]江南乐

    Description 小A是一个名副其实的狂热的回合制游戏玩家.在获得了许多回合制游戏的世界级奖项之后,小A有一天突然想起了他小时候在江南玩过的一个回合制游戏.    游戏的规则是这样的,首先给定一 ...

  6. 51nod 1035:最长的循环节

    1035 最长的循环节 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题   正整数k的倒数1/k,写为10进制的小数如果为无限循环小数,则存在一个循环节,求< ...

  7. bzoj4361isn 容斥+bit优化dp

    4361: isn Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 375  Solved: 186[Submit][Status][Discuss] ...

  8. [IOI1998] Pictures

    用线段树维护区间最小值和最小值个数来求一段区间里0的个数,把横的和竖的边分别拿出来,排序,然后每次查一下重复部分的长度即可 #include<iostream> #include<c ...

  9. Go实现海量日志收集系统(三)

    再次整理了一下这个日志收集系统的框,如下图 这次要实现的代码的整体逻辑为: 完整代码地址为: https://github.com/pythonsite/logagent etcd介绍 高可用的分布式 ...

  10. Java Servlet 笔记4

    Servlet 客户端 HTTP 请求 当浏览器请求网页时,它会向 Web 服务器发送特定信息,这些信息不能被直接读取,因为这些信息是作为 HTTP 请求的头的一部分进行传输的. 读取 HTTP 头的 ...