- 浏览: 192123 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (163)
- Linux (14)
- html (4)
- Lucene (2)
- WebService (4)
- oracle (7)
- spring (2)
- eclipse (15)
- AIX (2)
- windows (3)
- android (1)
- Java基础 (15)
- Struts (7)
- Java面向对象 (2)
- Java Web (1)
- Apache (2)
- Web容器 (12)
- Google (2)
- javascript (32)
- 爬虫 (2)
- MySQL (4)
- C#开发 (3)
- Hibernate (3)
- 面试题 (2)
- Birt报表 (2)
- Flex (1)
- UML (2)
- 非技术 (3)
- Mercurial(hg) (1)
- css (2)
- SVN (1)
- Mac (1)
- ORM框架 (1)
- 测试技术 (2)
- 浏览器兼容 (5)
最新评论
-
xiebo1983:
http://www.sqkoo.com/show/detai ...
完美解决MySQL中文乱码 -
hzy888:
楼主,你好,你说的问题,我自己写例子测试,没有你说的效果,两个 ...
onblur和onclick冲突 -
ahack:
onblur 谢谢。
onblur和onclick冲突 -
lkf009:
an_it_eye_2012 写道降下来了,怎么再升上去呢,需 ...
Windows IE8降为IE6 -
haohao-xuexi02:
貌似这个方法不错啊
Windows IE8降为IE6
【转】java List 排序 Collections.sort
java List 排序 Collections.sort
用Collections.sort方法对list排序有两种方法
第一种是list中的对象实现Comparable接口,如下:
代码: Java代码
- /**
- * 根据order对User排序
- */
- 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());
- }
- }
-
-
-
- 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 user1
- list.add(user2); list.add(user1);
- Collections.sort(list);
- for(User u : list){
- System.out.println(u.getName());
- }
- }
- }
Java代码
- <span style="">/**
- * 根据order对User排序
- */
- 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());
- }
- }
-
- 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 user1
- list.add(user2); list.add(user1);
- Collections.sort(list);
- for(User u : list){
- System.out.println(u.getName());
- }
- }
- }
-
- </span>
输出结果如下
a
b
第二种方法是根据Collections.sort重载方法来实现,例如:
代码: Java代码
- /**
- * 根据order对User排序 */
- public class User {
- //此处无需实现Comparable接口
- 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 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>();
- list.add(user2);
- list.add(user1);
- Collections.sort(list,new Comparator<User>(){
- public int compare(User arg0, User arg1) {
- return arg0.getOrder().compareTo(arg1.getOrder());
- }
- });
- for(User u : list){
- System.out.println(u.getName());
- }
- }
- }
最简单的就是上面红色的字。。。。。。。。。。。
默认为升序,将。return arg0.getOrder().compareTo(arg1.getOrder()); 改为:
return arg1.getOrder().compareTo(arg0.getOrder());
就成倒序的了。。
本文章为转载,在做对List排序的时候搜索的.
|
发表评论
-
Timestamp和String的相互转换
2013-09-07 15:02 763用Timestamp来记录日期时间还是很方便的,但有时候显 ... -
Java 记事本 源代码
2013-04-12 17:31 991转自:http://blog.sina.com.cn/s/b ... -
解决svn的working copy locked并且cleanup恢复不能的情况
2012-10-18 17:41 1251svn cleanup 执行目录是SVN项目目录 产生这种情 ... -
Beanshell 初体验
2012-09-20 14:44 0Beanshell 初体验 Beanshell是 ... -
用edtftpj实现Java FTP客户端工具
2012-09-20 14:44 0用edtftpj实现Java FTP客户端工具 ... -
java Map遍历
2012-08-29 23:06 845//最常规的一种遍历方法,最常规就是最常用的,虽然不复杂 ... -
Java实现四则运算的解析
2012-08-29 22:21 3082面试遇到了这个题,里面需要用到根据配置的四则运算式(字符串型) ... -
详细解析Java中抽象类和接口的区别
2012-08-01 17:01 711转自:http://dev.yesky.com/4 ... -
Arraylist Vector Linkedlist 区别与用法
2012-07-18 13:43 755Arraylist Vector Linkedlist ... -
java判断数字
2012-07-05 17:20 847Java正则表达式JDK工作 最近遇到判断数字的问题, ... -
Ant之build.xml详解
2012-03-30 18:27 781Ant之build.xml详解 转自: ht ... -
java面试经典
2012-03-30 13:31 7691. 从简历的项目谈起 ... -
java用户角色权限设计
2012-03-29 18:20 727转自:http://www.cnblogs.com/a7 ... -
jdbc与hibernate的优缺点比较(转载的精髓)
2012-03-13 17:40 1612转自:http://topic.csdn.net/ ... -
JXL操作excel查出重复值
2012-03-13 17:02 1295package com.test; import jav ... -
写了个java判断数组相等的方法,请大家指教
2011-08-16 12:46 1707public class Tools { publi ...
相关推荐
Comparator是个接口,可重写compare()及equals()这两个方法,接下来通过本文给大家介绍Java中Collections.sort排序,需要的的朋友参考下吧
java 集合类的排序主要是用Collections.sort方法,Collections和Collection是不一样的,前者是类,后者是接口,在这里,我主要是想说明它的sort方法的几种类型, 提示:实现接口的方法时,只需要比较两个数,大的返回1,...
数组有工具类Arrays,集合也有一个工具类Collections,这里练习一下集合工具类的排序方法,顺便过一下sort排序方法,比较器。 sort方法 sort(List<T> list):根据其元素的natural ordering对指定的列表进行排序。 ...
当我们有这么一个personList,里面包含了person1, person2, persion3….., 我们用Collections.sort( personList ), 是得不到预期的结果的. 这时肯定有人要问, 那为什么可以排序一个字符串list呢: 如 ...
实现了Comparable接口的类的对象的列表或数组可以通过Collections.sort或Arrays.sort进行自动排序。 此外,实现此接口的对象可以用作有序映射中的键或有序集合中的集合,无需指定比较器。 此 接口只有一个方法...
主要思路来源于下面这个博客: ...在细节上,做了一些修改: (1)定义了新的Comparator接口,使之能正确针对左...(5)原文中Collections.sort()修改为Arrays.sort() 代码实现: import java.util.Arrays; import java.
比如Collections.sort(List list, Comparator c); 可以通过实现多个Comparator接口来达到多种排序的目的. 2.装饰着模式(Decorator): 动态的给一个对象添加一些额外的职责. 比如java.io包. BufferedInputStream封装...
排序:Comparable Comparator Collections.sort() ArrayList:底层用数组实现的List 特点:查询效率高,增删效率低 轻量级 线程不安全 LinkedList:底层用双向循环链表 实现的List 特点:查询效率低,增删效率高 ...
Collections.sort(List,Comparator) 对列表进行排序 反向链表(给定链表反向部分的长度) ListNode start = pre.next; ListNode then = start.next; //key part of reversing given length linkedlist for(int i =...
Collections.sort(strList, comparator); 其中strList中放置了数据,可以是任何对象,但要对PinyinComparator中的compare进行对应的修改,我Demo中为String[]。 2、PinyinComparator排序类: public class ...
典型的是Collections.sort(List list,Comparator<? super T> c)这个方法,它的第二个参数是一个实现Comparator接口的实例。我们可以根据自己的排序规则写一个类,实现此接口,传入此方法,那么这个方法就会根据...
而在Java类库中有一个Arrays类的sort方法已经实现各种数据类型的排序算法。程序员只需要调用该类的方法即可。 代码演示:Arrays实现排序 public static void main(String[] args) { int[] ages={23, 45,12,76,34,...
顺序对给定列表进行排序: beerNames . sort(( String a, String b) - > { return a . compareTo(b);}); 解释 Functional Inrerface 是与唯一一种抽象方法的接口。 它可以用@FuctionalInterface注释。 在 Java 8 中...
Simple Java 是 Java 常见问题的集合。中文翻译 ##1。 字符串和数组字符串和数组 字符串是通过引用传递的吗?...按值排序地图 ...例如,按值排序 深入理解Arrays.sort(T[], ...常见排序,Collections、Arrays、Tre
Java API中的Collections有一个sort方法, sort(List<T> list, Comparator<? super T> c) 其中Comparator是比较算子。通过实现Comparator接口可以定义满足个各种需要的排序方式。 这个例子是通过一个Student的...