- 浏览: 197491 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (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 801用Timestamp来记录日期时间还是很方便的,但有时候显 ... -
Java 记事本 源代码
2013-04-12 17:31 1041转自:http://blog.sina.com.cn/s/b ... -
解决svn的working copy locked并且cleanup恢复不能的情况
2012-10-18 17:41 1274svn 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 882//最常规的一种遍历方法,最常规就是最常用的,虽然不复杂 ... -
Java实现四则运算的解析
2012-08-29 22:21 3117面试遇到了这个题,里面需要用到根据配置的四则运算式(字符串型) ... -
详细解析Java中抽象类和接口的区别
2012-08-01 17:01 734转自:http://dev.yesky.com/4 ... -
Arraylist Vector Linkedlist 区别与用法
2012-07-18 13:43 780Arraylist Vector Linkedlist ... -
java判断数字
2012-07-05 17:20 866Java正则表达式JDK工作 最近遇到判断数字的问题, ... -
Ant之build.xml详解
2012-03-30 18:27 807Ant之build.xml详解 转自: ht ... -
java面试经典
2012-03-30 13:31 7921. 从简历的项目谈起 ... -
java用户角色权限设计
2012-03-29 18:20 747转自:http://www.cnblogs.com/a7 ... -
jdbc与hibernate的优缺点比较(转载的精髓)
2012-03-13 17:40 1635转自:http://topic.csdn.net/ ... -
JXL操作excel查出重复值
2012-03-13 17:02 1327package com.test; import jav ... -
写了个java判断数组相等的方法,请大家指教
2011-08-16 12:46 1740public class Tools { publi ...
相关推荐
如果需要自定义排序规则,可以提供一个`Comparator`实例给`Collections.sort()`方法。`Comparator`是一个接口,定义了`compare()`方法用于比较两个对象。例如,我们创建一个`ComparatorPerson`类来根据姓名排序: `...
Java中Collections.sort排序详解 Java中的Collections.sort排序是Java.util....通过示例代码,展示了如何使用Collections.sort()方法对列表进行排序,并定义了一个Comparator接口的实现类来比较书籍的价格。
Java Collections.sort()实现List排序的默认方法和自定义方法 Java Collections.sort()是Java语言中用于对List进行排序的方法,通过使用这个方法可以对List进行默认排序,也可以根据需要实现自定义的排序规则。 ...
`Collections.sort()` 可以根据元素的自然顺序或者自定义的比较器(Comparator)进行排序。 ### 1. 自然顺序排序 如果列表中的元素实现了 `Comparable` 接口,那么 `Collections.sort()` 会使用元素的自然顺序进行...
Java Collections.sort() 排序代码案例 ... Java Collections.sort() 排序代码案例可以对列表进行自然排序,也可以根据 Comparator 对象对列表进行自定义排序。该方法非常重要,广泛应用于实际开发中。
在Java编程语言中,`Collections.sort()` 方法是一个非常重要的工具,用于对List接口实现的集合进行排序。这个方法使得开发者能够方便地按照指定的顺序排列集合中的元素。本篇文章将详细探讨如何使用 `Collections....
`Collections.sort()`有两种主要的排序方式:一种是基于元素的自然顺序,另一种是通过自定义比较器`Comparator`。 首先,我们来详细讲解`Collections.sort()`的默认排序机制。当传入的列表元素实现了`Comparable`...
Collections.sort 方法的第二个参数形式是 public static <T> void sort(List<T> list, Comparator<? super T> c),该方法允许我们通过实现 Comparator 接口的 compare 方法来完成自定义排序。 下面是一个使用...
下面是使用Comparator排序的代码: ```java public class User { // No need to implement Comparable interface private String name; private Integer order; // getters and setters... } public class ...
- 使用`Collections.sort()`方法对列表进行排序,传入相应的`Comparator`实例作为参数。 - 在本例中,我们使用`OrderName`对列表进行排序,然后使用`Collections.reverse()`方法对列表进行反转,以便按降序显示...
在这个场景下,我们使用`Collections.sort()`函数对一个包含Map对象的List进行排序,然后将排序后的数据适配到ListView中。以下是关于这个主题的详细解释。 **一、Map与List的关系** 在Java中,Map是一种键值对的...
在Java编程中,Collections工具类提供了许多方便的集合操作,其中`sort()`方法是一个非常重要的功能,用于对List类型的集合进行排序。本文将详细介绍`Collections.sort()`方法的两种使用方式及其示例。 ### 一、...
在`main()`方法中,`ComparatorObject`实例被传递给`Collections.sort()`方法,后者使用这个比较器对列表进行排序。排序完成后,通过遍历列表打印出每个`Map`的“orderRole”和“dateorder”字段,以验证排序结果。 ...
2. 自定义Comparator排序: 如果ArrayList中的元素是自定义类,并且没有实现Comparable接口,或者需要按照非自然顺序进行排序,可以创建一个Comparator实例,并作为`Collections.sort()`方法的参数。例如,假设有一...
在`List`对象集合中使用`Comparator`进行排序,通常需要调用`Collections.sort()`或`list.sort()`方法。例如,假设我们有一个`Person`类,其中包含`name`和`age`属性,我们想要根据年龄对`Person`对象列表进行排序:...
2. **定制排序**:如果需要自定义排序规则,可以使用 `Collections.sort()` 方法并传入一个实现了 `Comparator` 接口的实例。`Comparator` 接口定义了 `compare()` 方法,用于指定比较逻辑。 ```java List<Person> ...
* `Collections.sort(List<T> list, Comparator<? super T> c)`: 对列表进行自定义排序。 线程安全操作 Collections 中的线程安全操作方法包括同步和不可变集合。这些方法用于保证集合的线程安全。 * `...
总的来说,Collections工具类的`sort()`方法是Java集合排序的核心,结合Comparable接口和Comparator接口,可以满足各种复杂排序需求。无论是基本类型还是自定义类型,都能通过合理的比较策略实现有效的排序。在实际...
`Comparator`接口位于`java.util`包下,通常与`Collections.sort()`方法一起使用,为自定义排序提供灵活性。下面将详细介绍`Comparator`接口的工作原理、常见用法以及如何自定义比较规则。 ### 1. `Comparator`接口...
Java集合排序涉及的知识点广泛,包括基本的`Collections.sort()`、自定义Comparator、Stream API、并行排序以及泛型等。理解这些概念并熟练运用,能显著提高代码质量和效率。在实际编程中,根据具体需求选择合适的...