collection 中对类排序
首先 写出 一个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 中对类排序的更多相关文章
- Comparable接口——容器中自定义类排序
1.容器TreeMap,默认根据Key对象中某个属性的从小到大排列元素. (1)如下代码示例,Key是整型数字,所以按照其从小到大的顺序排列 public class TestTreeMap { pu ...
- 《Entity Framework 6 Recipes》中文翻译系列 (16) -----第三章 查询之左连接和在TPH中通过派生类排序
翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 3-10应用左连接 问题 你想使用左外连接来合并两个实体的属性. 解决方案 假设你有 ...
- 在含有null值的复杂类的集合(Collection)中取最大值
在日常编程中,经常遇到要在一组复杂类的集合(Collection)中做比较.取最大值或最小值. 举个最简单的例子,我们要在一个如下结构的集合中选取包含最大值的元素: public class Clas ...
- SortedSet的实现类是TreeSet:它的作用是字为添加到TreeSet中的元素排序。
SortedSet可自动为元素排序. SortedSet的实现类是TreeSet:它的作用是字为添加到TreeSet中的元素排序. 练习:自定义类用TreeSet排序. 与HashSet不同, ...
- java工具类之按对象中某属性排序
import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang ...
- 集合类中的Collection接口实现类
今天学习一下集合包里面的内容,常见的有Collection和Map两个接口的实现类Collection中常见的又分为两种: 1.List ,支持放入重复的对象,实现类有arraylist,linked ...
- Python中自定义类未定义__lt__方法使用sort/sorted排序会怎么处理?
在<第8.23节 Python中使用sort/sorted排序与"富比较"方法的关系分析>中介绍了排序方法sort和函数sorted在没有提供key参数的情况下默认调用 ...
- 有关collection中的一些数据结构
Collection接口 Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements).一些Collection允许相同的元素 ...
- 【Java并发编程】5、java中ConcurrentLinkedQueue类
一.类结构: java.lang.Object java.util.AbstractCollection<E> java.util.AbstractQueue<E> java. ...
随机推荐
- SpringIOC学习一
Spring是一个轻量级的控制反转(IOC)和面向切面(IOP)的容器框架1.控制反转IOC(inversion of controller) IOC是一种概念,是把我们程序中类与类之间的依赖关 ...
- CentOS6.9安装
我安装在VM的虚拟机中.具体安装方式网上很多,由于本机只能安装32位的linux系统,所以悬在了Centsos6.9版本.点此下载. 其中有一种是叫做LIVEDVD的版本,这种的值虚拟机中配置后,打开 ...
- [AtCoder arc090E]Avoiding Collision
Description 题库链接 给出一张 \(N\) 个节点, \(M\) 条边的无向图,给出起点 \(S\) 和终点 \(T\) .询问两个人分别从 \(S\) 和 \(T\) 出发,走最短路不相 ...
- [AHOI2012]树屋阶梯
题目描述 输入输出格式 输入格式: 一个正整数N(1<=N<=500),表示阶梯的高度. 输出格式: 一个正整数,表示搭建方法的个数.(注:搭建方法的个数可能很大) 输入输出样例 输入样例 ...
- 因数(factor)
一个最基本的算数法则就是大于1的整数都能用1个或多个素数相乘的形式表示出来.当然,有多种质因子排列方案 如: 10=2×5=5×2 20=5×2×2=2×5×2=2×2×5 用f(k)表示k的质 ...
- 2015 多校联赛 ——HDU5363(快速幂)
Problem Description soda has a set S with n integers {1,2,…,n}. A set is called key set if the sum o ...
- bzoj 1875: [SDOI2009]HH去散步
Description HH有个一成不变的习惯,喜欢饭后百步走.所谓百步走,就是散步,就是在一定的时间 内,走过一定的距离. 但 是同时HH又是个喜欢变化的人,所以他不会立刻沿着刚刚走来的路走回. 又 ...
- Postgres中postmaster代码解析(中)
今天我们对postmaster的以下细节进行讨论: backend的启动和client的连接请求的认证 客户端取消查询时的处理 接受pg_ctl的shutdown请求进行shutdown处理 2.与前 ...
- Java内存分配、管理小结
转载自:http://java-mzd.iteye.com/blog/848635
- Hibernate更新数据(不用update也可以)
在介绍hibernate的更新之前,我们先来看看session的两个方法.load和get方法:这两个方法是获取数据的根据对象的id值: 先看两段代码.load和get的方法都含有两个参数,前者是得到 ...