`

java中对集合类的排序

阅读更多
1.第一种
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());
        }
    }
}

第二种方法
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());
        }
    }
}
多字段场合
Collections.sort(list,new Comparator<User>(){
            public int compare(User arg0, User arg1) {
//            第一次比较专业
                int i = arg0.getOrder().compareTo(arg1.getOrder());

//            如果专业相同则进行第二次比较
            if(i==0){
//                第二次比较
                int j=arg0.getXXX().compareTo(arg1.getXXX());
//                如果学制相同则返回按年龄排序
                if(j==0){
                    return arg0.getCCC().compareTo(arg1.getCCC());
                }
                return j;
            }
            return i;
            }
        });

分享到:
评论

相关推荐

    Java 集合排序及java 集合类详解

    Java 集合排序及java 集合类详解 Java 集合排序及java 集合类详解,Java里面最重要、最常用也就是集合那部分了,能够用好集合和理解好集合对于做Java程序的开发拥有无比的好处。本教程详细解释了关于Java中的集合是...

    Java集合排序及java集合类详解

    在本篇中,我们将深入探讨Java集合的排序机制以及集合类的详细使用。 首先,我们来了解一下Java集合的基本分类。Java集合主要分为两大类:List(列表)和Set(集)。List是一个有序的集合,允许元素重复,并且可以...

    Java集合排序及java集合类详解.pdf

    ### Java集合排序及Java集合类详解 #### 一、集合框架概述 集合框架是Java编程语言的核心组件之一,用于组织和操作数据集。Java集合框架提供了多种数据结构,包括列表(List)、集(Set)和映射(Map),这些数据结构...

    java 集合分组与排序

    Java集合框架中的`List`接口和数组(Array)是两种常用的数据结构,它们在处理数据时各有优势。下面我们将深入探讨如何在Java中实现集合的分组与排序。 1. **集合分组**: 集合分组通常涉及到`GroupingBy`操作,这...

    java中进行集合排序

    这里的“集合”特指Java集合框架中的数据结构,而“排序”则是指对这些集合内的元素按照某种规则进行重新排列。 #### 描述:Java中按对象的某个属性进行升序降序的排序 这段描述进一步明确了排序的目标:即基于...

    java自定义集合类

    自定义集合类则是开发者根据特定需求扩展Java集合框架的行为,以满足个性化或特定业务场景的功能需求。以下是对"java自定义集合类"这一主题的详细解释。 首先,Java集合框架包括接口(如List、Set、Map)和实现这些...

    java集合类线程安全.doc

    Java 集合框架的设计者 Bloch Joshua 在他著名的 《Java 高效编程》一书中对 Java 线程安全的等级做出了相对精确的定义:非可变、线程安全、条件线程安全、线程兼容和线程不友好。 本文将结合上述 Bloch 关于线程...

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

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

    java 中文姓氏 排序

    本文将详细介绍如何在 Java 中对包含中文姓氏的对象列表或字符串列表进行排序。 #### 二、基本概念 1. **Collator 类**:这是 Java 中用于文本排序和检索的标准类。`Collator` 类提供了与语言环境相关的字符串排序...

    java集合类详解(set list ArrayList等java集合类详述)

    Java 集合类是 Java 语言中的一种基本数据结构,用于存储和操作大量数据。集合类可以分为三大类:Collection、List 和 Set。 Collection 是集合框架中的根接口,提供了基本的集合操作,如 add、remove、contains 等...

    java集合某个字段按照中文拼音排序.docx

    对Java集合中的某个字段按照中文拼音排序可以使用多种方法,本文将介绍两种常见的方法。 方法一:使用Comparable接口 在Java中,我们可以使用Comparable接口来实现自定义排序。例如,我们可以创建一个Record类,...

    java 集合排序及java集合类详解

    java 集合排序及java集合类详解,本文详细解释了关于java中的集合实现,以及他们的实现原理

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

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

    java中集合排序

    集合框架是Java中处理集合类的一个核心部分,它提供了一种高效、灵活的方式来组织和操作数据。本文将深入探讨Java中集合排序的相关知识点,包括基本概念、排序方法以及常用类的实现。 1. **集合接口与实现** Java...

    java工具类集合

    Java工具类集合是Java开发中不可或缺的一部分,它们提供了一系列便捷的方法,帮助开发者高效地处理各种常见任务。在Java中,工具类通常被组织在各种包下,如`java.util`、`java.lang`、`java.io`等。下面将详细介绍...

Global site tag (gtag.js) - Google Analytics