博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java中对List集合排序的两种方法
阅读量:5157 次
发布时间:2019-06-13

本文共 2691 字,大约阅读时间需要 8 分钟。

第一种方法,就是list中对象实现Comparable接口,代码如下:

public class Person implements Comparable
{ private String name; private Integer order; /** * @return the name */ public String getName() { return name; } /** * @param name * the name to set */ public void setName(String name) { this.name = name; } /** * @return the order */ public Integer getOrder() { return order; } /** * @param order * the order to set */ public void setOrder(Integer order) { this.order = order; } @Override public int compareTo(Person arg0) { return this.getOrder().compareTo(arg0.getOrder()); } }
View Code
public static void main(String[] args) {    List
listA = new ArrayList
(); Person p1 = new Person(); Person p2 = new Person(); Person p3 = new Person(); p1.setName("name1"); p1.setOrder(1); p2.setName("name2"); p2.setOrder(2); p3.setName("name3"); p3.setOrder(3); listA.add(p2); listA.add(p1); listA.add(p3); Collections.sort(listA); for (Person p : listA) { System.out.println(p.getName()); }}
View Code

第二种方法,就是在重载Collections.sort方法,代码如下:

public class Person {    private String name;    private Integer order;     /**     * @return the name     */    public String getName() {        return name;    }     /**     * @param name     *            the name to set     */    public void setName(String name) {        this.name = name;    }     /**     * @return the order     */    public Integer getOrder() {        return order;    }     /**     * @param order     *            the order to set     */    public void setOrder(Integer order) {        this.order = order;    } }
View Code
public static void main(String[] args) {        List
listA = new ArrayList
(); Person p1 = new Person(); Person p2 = new Person(); Person p3 = new Person(); p1.setName("name1"); p1.setOrder(1); p2.setName("name2"); p2.setOrder(2); p3.setName("name3"); p3.setOrder(3); listA.add(p2); listA.add(p1); listA.add(p3); Collections.sort(listA, new Comparator
() { public int compare(Person arg0, Person arg1) { return arg0.getOrder().compareTo(arg1.getOrder()); } }); for (Person p : listA) { System.out.println(p.getName()); } }
View Code

两次执行的结果都是:

name1

name2

name3

转载于:https://www.cnblogs.com/longshiyVip/p/5102231.html

你可能感兴趣的文章
移动端开发模式
查看>>
Androidの高级交互之仿微信摇一摇(真心摇一摇,而不是像网传的就那么简单的震动一下)...
查看>>
Java基础知识强化之IO流笔记39:字符流缓冲流之复制文本文件案例01
查看>>
Java基础知识强化48:Java中哈希码
查看>>
TCP/IP协议原理与应用笔记24:网际协议(IP)之 IP协议的简介
查看>>
bool
查看>>
C#中Enum用法小结
查看>>
ORA-12541:TNS:无监听程序
查看>>
QMap与QHash
查看>>
Cocos2d-x动作学习笔记 分类: cocos2d代码编写 ...
查看>>
第4章例4-12 源程序2
查看>>
Bootstrap 3 How-To #1 下载与配置
查看>>
java并发编程(10)Fork/Join
查看>>
#程序员健康 如何解救你的鼠标手
查看>>
linux下maven的安装
查看>>
win10安装express遇到的问题。
查看>>
Corosync 配置描述
查看>>
JAVA中类、实例与Class对象
查看>>
svn_linux + apache 实现网页访问svn
查看>>
leetcode 58. length of last word
查看>>