1.List中的对象实现Comparable接口:

public class User implements Comparable<User>
{private String name;private Integer order;public String getName() {return name;}public void setName(String name) {this.name = name;}public Integer getOrder() {return order;}public void setOrder(Integer order) {this.order = order;}public int compareTo(User arg0) {return this.getOrder().compareTo(arg0.getOrder());}}

下面是测试类Test:

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;public class Test{public static void main(String[] args) {User user1 = new User();user1.setName("a");user1.setOrder(1);User user2 = new User();user2.setName("b");user2.setOrder(2);List<User> list = new ArrayList<User>();//此处add user2再add user1list.add(user2);list.add(user1);Collections.sort(list);for(User u:list){System.out.println(u.getName());}}}

输出为:

a

b

2.使用静态内部类实现Comparator接口,Comparator接口位于java.util包下

import java.util.*;
public class Main{
public static void main(String args[]){
ArrayList al=new ArrayList();
al.add(new Student(2,"aa"));
al.add(new Student(1,"bb"));
al.add(new Student(3,"dd"));
al.add(new Student(3,"cc"));
Collections.sort(al,new StudentComparator());
Iterator it=al.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
}
}
class Student {
int id;
String name;
Student(int id,String name){
this.id=id;
this.name=name;
}
public String toString(){
return "id="+this.id+",name="+this.name;
}
}
class StudentComparator implements Comparator{
public int compare(Object o1,Object o2){
Student s1=(Student)o1;
Student s2=(Student)o2;
int result=(s1.id>s2.id)?1:((s1.id==s2.id)?0:-1);
if(0==result){
result=s1.name.compareTo(s2.name);
}
return result;
}
}

3.补充:我遇到的情况是直接List<String> list=new ArrayList();

在这种情况下,我们如果调用Collections.sort(list);方法,它会对list里字符串从左往右的字母的ascii值进行排序,不用实现 Comparator 接口。

public class Connectionssort {public static void main(String[] args) {// TODO Auto-generated method stubList<String> list = new ArrayList();int j=0;JDBManager db=new JDBManager(); ResultSet rs;String q = "select * from securityEvent";try {rs = db.executeQuery(q);while (rs.next()) {list.add(rs.getString("grade"));}Collections.sort(list);while (j < list.size()) {System.out.println(list.get(j).toString());j++;}}catch (Exception e) {// TODO: handle exception}
}
}

实验结果如下:

A

A

B

B

B

C

C

C

D

Java-Collections的sort方法对 list 进行排序相关推荐

  1. Java中使用sort()进行升序降序排序

    这篇文章主要介绍了详解Java sort()数组排序(升序和降序),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 我们在学习 J ...

  2. Java中Colletcions.sort方法详解以及Comparable和Comparator两个接口的区别

    在应用Collections工具类的sort方法时,一般有两种使用方式: //将集合中元素按照默认规则排序. public static <T> void sort(List<T&g ...

  3. JS 自定义sort方法实现星期的排序【开发记录】

    前阶段有对星期排序的需求,简单说下,就是用户点击星期进行选择,选择过程中也可以对之前选择的进行取消,选定以后要将用户选择的星期提交到后台. 由于用户选择的过程中很可能先选星期二,后又选了星期一,这样我 ...

  4. Java Collections.sort方法对list集合排序

    1.排序测试类 package com.ljq.test;import java.util.ArrayList; import java.util.Collections; import java.u ...

  5. Java冒泡排序与sort方法排序

    冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法.它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小.首字母从Z到A)错误就把他们交换过来.走访元素的 ...

  6. JAVA API个各种方法

    熟练掌握常用类及方法 String str1.startsWith(str2) 判断str1是否以str2开头,返回true或false str1.endsWith(str2) 判断str1是否以st ...

  7. JAVA Collections类

    首先看到Collections,是不是想到Collection,他俩很相似,就多了个s,那他们有什么区别呢? 1.Collection是集合的顶层接口,本身是一个Interface接口,里面包含了一些 ...

  8. [Java基础] sort方法--------排序的那些事

    引言 在学习Java过程中,排序sort是我们常用的功能:在Java里,数组有Arrays.sort()可以排序,集合则是Collections.sort()方法排序:默认情况下是升序排列,但是降序又 ...

  9. java sort方法_Java排序方法sort用法详解

    本文实例为大家分享了java对数组.集合的排序方法,供大家参考,具体内容如下 对数组的排序: //对数组排序 public void arraySort(){ int[] arr = {1,4,6,3 ...

最新文章

  1. 使用HTTP模块扩展 ASP.NET 处理
  2. 一个研发团队是如何坚持7年技术分享的?
  3. 周志华教授专著《集成学习:基础与算法》上市,破解AI实践难题
  4. 用户使用说明c语言,(C语言使用指南.docx
  5. 如何阅读一本书~阅读的层次
  6. 基于SpringCloud实现Shard-Jdbc的分库分表模式,数据库扩容方案
  7. 后台模板 开源_3个开源样板网页设计模板
  8. Python 之父重回决策层,未来如何发展?
  9. Bzoj 3831: [Poi2014]Little Bird
  10. 汽车汽配行业DMS渠道商系统精准掌握渠道库存,提升市场响应能力
  11. ActivityManager解析及使用
  12. 如何卸载Windows预安装内置应用
  13. 微信JS接口安全域名设置不成功,提示没有找到文件
  14. 互联网日报 | 6月20日 星期日 | 宁德时代否认强制员工购买特斯拉;小米618支付金额破190亿元;岚图FREE正式上市...
  15. 求数组所有非空子序列的和
  16. Java+Python 微信公众号自动给女朋友推送专属浪漫早安问候
  17. 抓虾的告别信RSS即将退出舞台
  18. 浅谈关于申请CCC认证以后的好处
  19. oracle数据库建立外键级联删除
  20. CTO与CIO选型数据中台的几大建议

热门文章

  1. Yii 关于AR分表
  2. 敏捷个人A1组第二次讨论纪要 你在事业上打算何去何从?
  3. Libelle(容灾)
  4. 首个完全武器化的 Spectre Exploit 现身
  5. K8s 原理架构介绍(一)
  6. java测试驱动开发(TDD)之《井字游戏》
  7. Getphonenumber获得电话号码的例子
  8. java replaceAll() 方法要用 4 个反斜杠,表示一个反斜杠,该怎么解决
  9. linux下挂载U盘的方法
  10. opencv-python 学习笔记2:实现目光跟随(又叫人脸跟随)