第一种方法,就是list中对象实现Comparable接口,代码如下:
public class Person implements Comparable<Person> {
private String name;
private Integer order;
/**
* @return the name
*/
public String getName() {
return name;
}
/**
* @param name
* the name to set
*/
public void setName(String name) {
this.name = name;
}
/**
* @return the order
*/
public Integer getOrder() {
return order;
}
/**
* @param order
* the order to set
*/
public void setOrder(Integer order) {
this.order = order;
}
@Override
public int compareTo(Person arg0) {
return this.getOrder().compareTo(arg0.getOrder());
}
}
public static void main(String[] args) {
List<Person> listA = new ArrayList<Person>();
Person p1 = new Person();
Person p2 = new Person();
Person p3 = new Person();
p1.setName("name1");
p1.setOrder(1);
p2.setName("name2");
p2.setOrder(2);
p3.setName("name3");
p3.setOrder(3);
listA.add(p2);
listA.add(p1);
listA.add(p3);
Collections.sort(listA);
for (Person p : listA) {
System.out.println(p.getName());
}
}
第二种方法,就是在重载Collections.sort方法,代码如下:
public class Person {
private String name;
private Integer order;
/**
* @return the name
*/
public String getName() {
return name;
}
/**
* @param name
* the name to set
*/
public void setName(String name) {
this.name = name;
}
/**
* @return the order
*/
public Integer getOrder() {
return order;
}
/**
* @param order
* the order to set
*/
public void setOrder(Integer order) {
this.order = order;
}
}public static void main(String[] args) {
List<Person> listA = new ArrayList<Person>();
Person p1 = new Person();
Person p2 = new Person();
Person p3 = new Person();
p1.setName("name1");
p1.setOrder(1);
p2.setName("name2");
p2.setOrder(2);
p3.setName("name3");
p3.setOrder(3);
listA.add(p2);
listA.add(p1);
listA.add(p3);
Collections.sort(listA, new Comparator<Person>() {
public int compare(Person arg0, Person arg1) {
return arg0.getOrder().compareTo(arg1.getOrder());
}
});
for (Person p : listA) {
System.out.println(p.getName());
}
}
两次执行的结果都是:
name1
name2
name3
转 http://www.cnblogs.com/wentiertong/archive/2011/03/07/1973698.html
分享到:
相关推荐
Java 中 List 排序 Java 中 List 排序是指在数据库中查出来的列表中对不同的字段重新排序。一般的做法都是使用排序的字段,重新到数据库中查询。如果不到数据库查询,直接在第一次查出来的 List 中排序,无疑会提高...
JAVA SortList 通用排序类 从网上搜到一个java 对 List 排序的工具,自己改了下 支持 整数 和 浮点数 比较后排序,浮点数小数部分的有点问题,期待大牛帮忙优化。
在Java编程中,排序是常见的数据处理操作,特别是在处理集合数据结构时,如List。本文将深入探讨如何在Java的List中对包含多个属性的对象进行排序,并且支持动态设置每个属性的排序方式。这个功能的实现是通过泛型和...
java List排序工具类 使用示例: new OrderUtils().order(list, "name", OrderUtils.DESC); 相关实例代码: public static void main(String[] args) { List<Person> list = getData(); // 获取无序数据 new ...
Java集合框架中的`List`接口提供了一个`sort(Comparator<? super E> comparator)`方法,可以接受一个比较器(Comparator)来定义自定义的排序规则。默认情况下,Java使用自然排序,即按照字符串的Unicode值进行排序...
总结起来,`Collections.sort()`是Java中对List进行排序的标准工具,它支持自然排序和自定义排序。了解其工作原理和优化技巧,可以帮助我们在编程实践中更高效地处理数据。通过阅读和理解`Collections.sort()`的源码...
4. * 汉字按照拼音排序的比较器 5. * @author KennyLee 2009-2-23 10:08:59 6. * 7. */ 8.public class PinyinComparator implements Comparator<Object> { 9. public int compare(Object o1, Object o2) { 10...
本文将详细介绍如何在 Java 中对包含中文姓氏的对象列表或字符串列表进行排序。 #### 二、基本概念 1. **Collator 类**:这是 Java 中用于文本排序和检索的标准类。`Collator` 类提供了与语言环境相关的字符串排序...
Java集合框架中的`List`接口和数组(Array)是两种常用的数据结构,它们在处理数据时各有优势。下面我们将深入探讨如何在Java中实现集合的分组与排序。 1. **集合分组**: 集合分组通常涉及到`GroupingBy`操作,这...
Java集合某个字段按照中文拼音排序是Java开发中经常遇到的问题。对Java集合中的某个字段按照中文拼音排序可以使用多种方法,本文将介绍两种常见的方法。 方法一:使用Comparable接口 在Java中,我们可以使用...
在Java编程中,对List进行多个排序和查询条件的处理是一项常见的任务,特别是在处理数据集合时。本篇文章将深入探讨如何使用Java实现这些操作,并基于给出的`GroupFilterSortUtils.java`文件,我们可以推断这是一个...
Java中List对象列表实现去重或取出及排序的方法 在Java中,对List对象列表实现去重或取出及排序是一种常见的操作。下面将详细介绍相关的方法和实现。 1. 实体类重写equals和hashCode方法 在Java中,想要去重List...
总的来说,`Collections` 类提供的排序功能使得在 Java 中对 `List` 进行操作变得更加便捷,无论是自然排序还是定制排序,都可以轻松实现。同时,随着 Java 8 及更高版本的引入,流API也提供了新的排序方式,开发者...
当我们需要对`List`中的元素进行排序时,可以利用Java提供的内置排序机制。本篇将详细介绍如何根据指定字段对`List`中的对象进行排序,以`Student`类为例,假设每个`Student`都有一个`grad`属性表示成绩。 首先,...
Java将2个List集合合并到一个List里面并排序工具类 1、Java编程资源,定义了一个名为`ListMerger`的工具类,主要包含一个名为`mergeAndSortLists`的静态方法。此方法用于将两个已经根据时间顺序排列的List合并成一...
在Java编程中,"list集合树状排序"是一种常见的需求,特别是在处理前端展示的数据时,如使用jQuery的treetable插件。这个场景通常涉及到数据结构的组织和排序,以便前端能够按照树形结构正确地展示层级关系。下面将...
在Java编程中,对集合(如`List`)中的对象进行排序是一项常见的操作。本文将详细介绍如何根据对象的特定属性来实现升序或降序排序。 #### 标题:Java中进行集合排序 该标题表明文章的主题是关于Java语言中如何对...
在Java编程中,Stream API是Java 8引入的一个强大特性,它允许我们以声明性方式处理数据集合。本文将深入探讨如何使用Stream API对日期进行排序。日期排序在数据分析、日志处理、报表生成等场景中非常常见。下面我们...
在Java编程语言中,对中文字符串进行排序是一个相对复杂的问题,因为中文字符的排序不能简单地按照Unicode编码顺序来处理。通常,我们需要考虑汉字的拼音或者笔画等属性来进行排序。这里我们将详细介绍如何使用`...
java开发,使用list对其进行排序,,易学简单。。。。。。。。。