`

Java List 排序

 
阅读更多

 

1. 调用java.util.Collections.sort(List list)方法进行排序 
   List内的Object都必须实现了Comparable接口 
public class Account implements Comparable {
    private String name;
    private String accessLevel;
    public Account(String name,String accessLevel) {
        this.name = name;
        this.accessLevel = accessLevel;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setAccessLevel(String accessLevel) {
        this.accessLevel = accessLevel;
    }

    public String getAccessLevel() {
        return accessLevel;
    }

    public int compareTo(Object o) {
        Account account = (Account)o;
        return this.getName().compareTo(account.getName());
    }
}

 

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class TestAccount {
    public static void main(String[] args) {
        List<Account> accountList = new ArrayList<Account>();
        accountList.add(new Account("abc","12"));
        accountList.add(new Account("qbc","12"));
        accountList.add(new Account("fbc","11"));
        accountList.add(new Account("gbc","11"));
        accountList.add(new Account("wbc","15"));
        Collections.sort(accountList);
        for(Account account:accountList){
            System.out.println(account.getName()+" "+account.getAccessLevel());
            System.out.println("-------");
        }
    }
}

 

2. 调用 java.util.Collections.sort(List list,Comparator c)
public class Person { 
    private String name;
    private String age;
    public Person(String name,String age) {
        this.name = name;
        this.age = age;
    }

    public void setName(String name) {
        this.name = name;
    }
    public String getName() {
        return name;
    }

    public void setAge(String age) {
        this.age = age;
    }
    public String getAge() {
        return age;
    }
}

声明一个PersonComparator类 

import java.util.Comparator;

public class PersonComparator implements Comparator {
    public PersonComparator() {
        super();
    }

    public int compare(Object o1, Object o2) {
        Person person1 = (Person)o1;
        Person person2 = (Person)o2;
        int compareTo = person1.getName().compareTo(person2.getName());
        if(compareTo == 0){
            compareTo = person1.getAge().compareTo(person2.getAge());
        }
        return compareTo;
    }
}

 

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class TestPerson {
    public static void main(String[] args) {
        List<Person> personList = new ArrayList<Person>();
        personList.add(new Person("abc","32"));
        personList.add(new Person("abc","12"));
        personList.add(new Person("fbc","22"));
        personList.add(new Person("gbc","52"));
        personList.add(new Person("wbc","12"));
        PersonComparator personComp = new PersonComparator();
        Collections.sort(personList,personComp);
        for(Person person:personList){
            System.out.println(person.getName()+" "+person.getAge());
            System.out.println("-------");
        }
    }
} 
  临时声明一个Comparator 来实现排序
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class TestPerson {
    public static void main(String[] args) {
        List<Person> personList = new ArrayList<Person>();
        personList.add(new Person("abc","32"));
        personList.add(new Person("abc","12"));
        personList.add(new Person("fbc","22"));
        personList.add(new Person("gbc","52"));
        personList.add(new Person("wbc","12"));
        Collections.sort(personList,new Comparator<Person>(){           
                public int compare(Person o1, Person o2) {
                    Person person1 = (Person)o1;
                    Person person2 = (Person)o2;
                    int compareTo = person1.getName().compareTo(person2.getName());
                    if(compareTo == 0){
                        compareTo = person1.getAge().compareTo(person2.getAge());
                    }
                    return compareTo;
                }
            });
        
//        PersonComparator personComp = new PersonComparator();
//        Collections.sort(personList,personComp);
        for(Person person:personList){
            System.out.println(person.getName()+" "+person.getAge());
            System.out.println("-------");
        }
    }
}
 
分享到:
评论

相关推荐

    java List排序工具类

    java List排序工具类 使用示例: new OrderUtils().order(list, "name", OrderUtils.DESC); 相关实例代码: public static void main(String[] args) { List&lt;Person&gt; list = getData(); // 获取无序数据 new ...

    java List 排序 Collections.sort

    总结起来,`Collections.sort()`是Java中对List进行排序的标准工具,它支持自然排序和自定义排序。了解其工作原理和优化技巧,可以帮助我们在编程实践中更高效地处理数据。通过阅读和理解`Collections.sort()`的源码...

    java list排序

    java开发,使用list对其进行排序,,易学简单。。。。。。。。。

    JAVALIST排序.pdf

    JAVALIST排序.pdf

    java List中对象多属性排序及各属性排序设置

    在Java编程中,排序是常见的数据处理操作,特别是在处理集合数据结构时,如List。本文将深入探讨如何在Java的List中对包含多个属性的对象进行排序,并且支持动态设置每个属性的排序方式。这个功能的实现是通过泛型和...

    java List排序demo

    当我们需要对`List`中的元素进行排序时,可以利用Java提供的内置排序机制。本篇将详细介绍如何根据指定字段对`List`中的对象进行排序,以`Student`类为例,假设每个`Student`都有一个`grad`属性表示成绩。 首先,...

    java List 排序之冒泡排序实例代码

    java List 排序之冒泡排序实例代码 Java List 排序之冒泡排序实例代码是 Java 语言中实现 List 排序的一种方法。该方法主要使用冒泡排序算法对 List 集合中的元素进行排序。 1.Collections.sort() 排序 ...

    JAVA LIST排序

    主要为LIST对象中的指定字段排序 首先比较年龄,如果年龄相同,则比较名字

    java 使用Collections类对List的排序操作

    总的来说,`Collections` 类提供的排序功能使得在 Java 中对 `List` 进行操作变得更加便捷,无论是自然排序还是定制排序,都可以轻松实现。同时,随着 Java 8 及更高版本的引入,流API也提供了新的排序方式,开发者...

    java中list排序

    Java 中 List 排序 Java 中 List 排序是指在数据库中查出来的列表中对不同的字段重新排序。一般的做法都是使用排序的字段,重新到数据库中查询。如果不到数据库查询,直接在第一次查出来的 List 中排序,无疑会提高...

    JAVA SortList 通用排序类

    JAVA SortList 通用排序类 从网上搜到一个java 对 List 排序的工具,自己改了下 支持 整数 和 浮点数 比较后排序,浮点数小数部分的有点问题,期待大牛帮忙优化。

    Java集合排序及java集合类详解(Collection、List、Map、Set)

    ### Java集合排序及java集合类详解 #### 集合框架概述 集合是Java编程语言中非常核心且广泛使用的部分,对于深入理解和高效使用Java语言至关重要。本文将围绕Java集合框架进行详细介绍,包括Collection、List、Set...

    java 集合分组与排序

    总结来说,Java集合框架提供了强大的工具来处理分组和排序,包括`List`接口的`sort()`方法和流API的`groupingBy()`和`sorted()`。在实际项目中,可以根据需求选择合适的方法。同时,`ArrayHelp`和`ClassLoadUtil`...

    Java 字母数字字符串 混合排序(绝对超值管用)

    List&lt;String&gt; location=new ArrayList(); 一行代码轻松搞定混合排序问题 Collections.sort(location, new SortUtils(true));

    Java对List多个排序、查询条件的处理

    在Java编程中,对List进行多个排序和查询条件的处理是一项常见的任务,特别是在处理数据集合时。本篇文章将深入探讨如何使用Java实现这些操作,并基于给出的`GroupFilterSortUtils.java`文件,我们可以推断这是一个...

    java中文排序,数字字母汉字排序

    Java集合框架中的`List`接口提供了一个`sort(Comparator&lt;? super E&gt; comparator)`方法,可以接受一个比较器(Comparator)来定义自定义的排序规则。默认情况下,Java使用自然排序,即按照字符串的Unicode值进行排序...

    Java将2个List集合合并到一个List里面并排序工具类

    Java将2个List集合合并到一个List里面并排序工具类 1、Java编程资源,定义了一个名为`ListMerger`的工具类,主要包含一个名为`mergeAndSortLists`的静态方法。此方法用于将两个已经根据时间顺序排列的List合并成一...

    list集合树状排序-java

    在Java编程中,"list集合树状排序"是一种常见的需求,特别是在处理前端展示的数据时,如使用jQuery的treetable插件。这个场景通常涉及到数据结构的组织和排序,以便前端能够按照树形结构正确地展示层级关系。下面将...

    java使用stream对日期排序

    通过以上介绍,我们可以看出Java Stream API提供了灵活且高效的方式来处理日期排序。无论是在简单的日期列表还是复杂的数据结构中,都可以轻松地实现排序功能。实践过程中,可以根据实际需求选择合适的日期类型和...

Global site tag (gtag.js) - Google Analytics