今天遇到一个排序问题觉得挺值得分享的,问题如下:
一个集合,集合存储着若干对象,对象有若干属性,希望按照对象的某个属性排序,排序完成,list的存储顺序也是按照这个属性排完以后的顺序。
代码如下:
public class User { private String username; private int age; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public User() { } } public class ListSortTest { public static void main(String args[]){ List<User> userlist=new ArrayList<User>(); User user1=new User(); User user2=new User(); User user3=new User(); User user4=new User(); user1.setAge(10); userlist.add(user1); user2.setAge(34); userlist.add(user2); user3.setAge(19); userlist.add(user3); user4.setAge(6); userlist.add(user4); System.out.println("排序前"); for(User user:userlist){ System.out.print(user.getAge() + "-"); } System.out.println("\n"); System.out.println("排序后"); for(User user:getSortList(userlist)){ System.out.print(user.getAge() + "-"); } } public static List<User> getSortList(List<User> list){ Collections.sort(list, new Comparator<User>() { @Override public int compare(User o1, User o2) { if(o1.getAge()>o2.getAge()){ return 1; } if(o1.getAge()==o2.getAge()){ return 0; } return -1; } }); return list; } } 输出: 排序前 10-34-19-6- 排序后 6-10-19-34-
我们再来看一下它实现的代码:
public static <T> void sort(List<T> list, Comparator<? super T> c) { Object[] a = list.toArray(); Arrays.sort(a, (Comparator)c); ListIterator i = list.listIterator(); for (int j=0; j<a.length; j++) { i.next(); i.set(a[j]); } }
而Arrays.sort使用的是冒泡和归并排序,默认是归并排序,所以排序速度还是杠杠的
转自:http://lanyinbin.cn/blog/articles/127.html
相关推荐
java List排序工具类 使用示例: new OrderUtils().order(list, "name", OrderUtils.DESC); 相关实例代码: public static void main(String[] args) { List<Person> list = getData(); // 获取无序数据 new ...
Java 中 List 排序 Java 中 List 排序是指在数据库中查出来的列表中对不同的字段重新排序。一般的做法都是使用排序的字段,重新到数据库中查询。如果不到数据库查询,直接在第一次查出来的 List 中排序,无疑会提高...
* 对传入的list进行分组排序 * list里面数据格式 [01-01-开头.txt, 01-02-简介.jpg, 11-01-尾声.jpg, 11-03-空白.jpg, 11-04-空白2.jpg, 11-06-空白1.jpg, 11-02-答谢语.txt, 02-01-标题.jpg, 02-09-标题555.jpg, ...
当我们需要对List中的元素进行排序时,`Collections.sort()`方法就派上了用场。这个方法能够根据元素的自然顺序或者自定义的比较器进行排序。本文将深入探讨`Collections.sort()`的使用、原理以及如何自定义排序规则...
本篇文章将详细探讨如何实现MFC List控件的排序功能。 在MFC中,`CListCtrl` 类提供了对列表视图控件的操作接口。列表视图可以显示多项数据,每项数据可以包含多个子项,类似于表格。要实现列表的排序,我们需要...
JAVA SortList 通用排序类 从网上搜到一个java 对 List 排序的工具,自己改了下 支持 整数 和 浮点数 比较后排序,浮点数小数部分的有点问题,期待大牛帮忙优化。
一个简单的list排序子类,没有封装。大家可以看看。直接调用即可
java开发,使用list对其进行排序,,易学简单。。。。。。。。。
### c# List类排序方法 #### 一、初始工作与预备知识 在C#中,`List<T>`是一个非常常用的泛型集合类,它提供了动态数组的功能,可以存储任意数量的相同类型元素。当涉及到对List中的数据进行排序时,我们可以采用...
在Java编程中,排序是常见的数据处理操作,特别是在处理集合数据结构时,如List。本文将深入探讨如何在Java的List中对包含多个属性的对象进行排序,并且支持动态设置每个属性的排序方式。这个功能的实现是通过泛型和...
JAVALIST排序.pdf
在.NET框架中,`List<T>`是一个常用的动态数组,它提供了丰富的操作集合的方法,包括排序。当需要自定义排序规则时,我们可以实现`IComparer<T>`接口。`ICompare`通常指的是`IComparer`,这是一个接口,用于比较两个...
Java Collections.sort()实现List排序的默认方法和自定义方法 Java Collections.sort()是Java语言中用于对List进行排序的方法,通过使用这个方法可以对List进行默认排序,也可以根据需要实现自定义的排序规则。 ...
在Duilib中,"DuiList" 是一种常见的控件类型,用于展示可排序的数据列表。本篇文章将详细探讨DuiList的排序功能及其相关知识。 首先,我们要理解DuiList的基本概念。DuiList通常用于显示一系列具有相同结构的项目...
当我们需要对`List`中的元素进行排序时,可以利用Java提供的内置排序机制。本篇将详细介绍如何根据指定字段对`List`中的对象进行排序,以`Student`类为例,假设每个`Student`都有一个`grad`属性表示成绩。 首先,...
“LIST排序”则明确指出了实现的关键功能是列表的排序。 综上所述,`VC中排序功能的list control`是一个自定义的`CListCtrl`类,它扩展了标准`List Control`的功能,允许用户通过点击列标题来对数据进行排序。实现...
java List 排序之冒泡排序实例代码 Java List 排序之冒泡排序实例代码是 Java 语言中实现 List 排序的一种方法。该方法主要使用冒泡排序算法对 List 集合中的元素进行排序。 1.Collections.sort() 排序 ...