Java-Collections的sort方法对 list 进行排序
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 进行排序相关推荐
- Java中使用sort()进行升序降序排序
这篇文章主要介绍了详解Java sort()数组排序(升序和降序),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 我们在学习 J ...
- Java中Colletcions.sort方法详解以及Comparable和Comparator两个接口的区别
在应用Collections工具类的sort方法时,一般有两种使用方式: //将集合中元素按照默认规则排序. public static <T> void sort(List<T&g ...
- JS 自定义sort方法实现星期的排序【开发记录】
前阶段有对星期排序的需求,简单说下,就是用户点击星期进行选择,选择过程中也可以对之前选择的进行取消,选定以后要将用户选择的星期提交到后台. 由于用户选择的过程中很可能先选星期二,后又选了星期一,这样我 ...
- Java Collections.sort方法对list集合排序
1.排序测试类 package com.ljq.test;import java.util.ArrayList; import java.util.Collections; import java.u ...
- Java冒泡排序与sort方法排序
冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法.它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小.首字母从Z到A)错误就把他们交换过来.走访元素的 ...
- JAVA API个各种方法
熟练掌握常用类及方法 String str1.startsWith(str2) 判断str1是否以str2开头,返回true或false str1.endsWith(str2) 判断str1是否以st ...
- JAVA Collections类
首先看到Collections,是不是想到Collection,他俩很相似,就多了个s,那他们有什么区别呢? 1.Collection是集合的顶层接口,本身是一个Interface接口,里面包含了一些 ...
- [Java基础] sort方法--------排序的那些事
引言 在学习Java过程中,排序sort是我们常用的功能:在Java里,数组有Arrays.sort()可以排序,集合则是Collections.sort()方法排序:默认情况下是升序排列,但是降序又 ...
- java sort方法_Java排序方法sort用法详解
本文实例为大家分享了java对数组.集合的排序方法,供大家参考,具体内容如下 对数组的排序: //对数组排序 public void arraySort(){ int[] arr = {1,4,6,3 ...
最新文章
- 使用HTTP模块扩展 ASP.NET 处理
- 一个研发团队是如何坚持7年技术分享的?
- 周志华教授专著《集成学习:基础与算法》上市,破解AI实践难题
- 用户使用说明c语言,(C语言使用指南.docx
- 如何阅读一本书~阅读的层次
- 基于SpringCloud实现Shard-Jdbc的分库分表模式,数据库扩容方案
- 后台模板 开源_3个开源样板网页设计模板
- Python 之父重回决策层,未来如何发展?
- Bzoj 3831: [Poi2014]Little Bird
- 汽车汽配行业DMS渠道商系统精准掌握渠道库存,提升市场响应能力
- ActivityManager解析及使用
- 如何卸载Windows预安装内置应用
- 微信JS接口安全域名设置不成功,提示没有找到文件
- 互联网日报 | 6月20日 星期日 | 宁德时代否认强制员工购买特斯拉;小米618支付金额破190亿元;岚图FREE正式上市...
- 求数组所有非空子序列的和
- Java+Python 微信公众号自动给女朋友推送专属浪漫早安问候
- 抓虾的告别信RSS即将退出舞台
- 浅谈关于申请CCC认证以后的好处
- oracle数据库建立外键级联删除
- CTO与CIO选型数据中台的几大建议