具了解有几种方法实现,实现Comparable接口,或是实例化一个比较器,现在用 Comparator 比较器实例来做一个测试。
package test; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; public class ComparableTest { public static void main(String[] args) { //实现Comparator接口的compare方法 Comparator<Student> comparator = new Comparator<Student>() { public int compare(Student s1, Student s2) { // 先排年龄 if (s1.age != s2.age) { return s1.age - s2.age; } else { // 年龄相同则按姓名排序 if (!s1.name.equals(s2.name)) { return s1.name.compareTo(s2.name); } else { // 姓名也相同则按学号排序 return s1.id - s2.id; } } } }; Student stu1 = new Student(1, "zhangsan", "male", 28, "cs"); Student stu2 = new Student(2, "lisi", "female", 19, "cs"); Student stu3 = new Student(3, "wangwu", "male", 22, "cs"); Student stu4 = new Student(4, "zhaoliu", "female", 17, "cs"); Student stu5 = new Student(5, "jiaoming", "male", 22, "cs"); ArrayList<Student> List = new ArrayList<Student>(); List.add(stu1); List.add(stu2); List.add(stu3); List.add(stu4); List.add(stu5); //这里就会自动根据规则进行排序 Collections.sort(List, comparator); display(List); } static void display(ArrayList<Student> lst) { for (Student s : lst) System.out.println(s); } } class Student { int age; int id; String gender; String name; String cs; Student(int id, String name, String gender, int age, String cs) { this.age = age; this.name = name; this.gender = gender; this.id = id; this.cs = cs; } public String toString() { return id + " " + name + " " + gender + " " + age + " " + cs; } }
相关推荐
本文将深入探讨如何在Java的List中对包含多个属性的对象进行排序,并且支持动态设置每个属性的排序方式。这个功能的实现是通过泛型和自定义比较器(Comparator)来完成的,对于复杂的数据排序需求具有很高的灵活性。...
在编程领域,集合对象排序是一项基础且重要的任务,它涉及到数据结构和算法的知识。当我们处理包含多个元素的数据集,如数组、列表或集合时,排序能够帮助我们快速查找、分析和展示信息。本文将深入探讨如何对对象...
在本场景中,我们需要对List中的对象进行排序,这些对象通常包含表示层级关系的属性,如父ID、子节点列表等。 接下来,我们要解决的是“树状排序”。树状排序,或称为树形排序,是指将具有树结构的数据进行排序。在...
在C#编程中,列表(List)是一种常用的集合类,用于存储一组同类型的元素。当需要对列表中的元素进行随机排序时,可以采用多种方法。这里我们重点介绍一种基于`Random`类的方法,如标题和描述中所述。这种方法通过创建...
`List`对象排序的通用方法对于优化程序性能、处理动态数据尤其关键,特别是当从数据库查询的数据需要根据特定字段进行调整时。本文将详细讨论如何对包含对象的`List`进行排序,包括正序和倒序,以及如何按指定参数...
总结来说,Java集合框架提供了强大的工具来处理分组和排序,包括`List`接口的`sort()`方法和流API的`groupingBy()`和`sorted()`。在实际项目中,可以根据需求选择合适的方法。同时,`ArrayHelp`和`ClassLoadUtil`...
JAVA像SQL一样对List对象集合进行排序 在本文中,我们将详细介绍如何使用JAVA像SQL一样对List对象集合进行排序。我们将通过五个部分,分别介绍字符串List排序、整数类型List排序、对象字段对对象List排序、使用...
当需要对`List`中的对象进行自定义排序时,`Comparator`接口就派上了用场。`Comparator`是一个可以比较两个对象的类,它提供了一种方式来定义自定义的比较规则,从而实现灵活的排序逻辑。 `Comparator`接口位于`...
在Java编程中,对List集合中的对象进行多属性排序是一项常见的任务。这通常涉及到自定义比较逻辑,以满足复杂的数据排序需求。在这个“java版本List中对象多属性排序.rar”压缩包中,我们可能找到了一个关于如何在...
在Java编程语言中,ArrayList是...总的来说,对ArrayList中的对象进行排序涉及到Java集合框架的核心概念,包括List接口、Collections工具类以及Comparator接口。理解这些知识点对于编写高效、灵活的Java代码至关重要。
在Java编程中,对集合(如`List`)中的对象进行排序是一项常见的操作。本文将详细介绍如何根据对象的特定属性来实现升序或降序排序。 #### 标题:Java中进行集合排序 该标题表明文章的主题是关于Java语言中如何对...
首先,让我们理解列表(List)和对象排序的基本概念。列表是Java集合框架的一部分,它允许我们在特定位置插入、删除或查找元素。在Java中,`ArrayList`和`LinkedList`是两种常用的列表实现。当列表包含对象时,这些...
在Java编程中,对List进行多个排序和查询条件的处理是一项常见的任务,特别是在处理数据集合时。本篇文章将深入探讨如何使用Java实现这些操作,并基于给出的`GroupFilterSortUtils.java`文件,我们可以推断这是一个...
在Java中,对List对象列表实现去重或取出及排序是一种常见的操作。下面将详细介绍相关的方法和实现。 1. 实体类重写equals和hashCode方法 在Java中,想要去重List对象列表,首先需要重写实体类的equals和hashCode...
1. IBindingList:这个接口提供了对列表的动态数据绑定支持,包括添加、删除、排序等操作。通过实现AddNew、ApplySort、RemoveSort、SupportsSorting和SortDirection等方法,我们可以使实体类集合支持排序。 2. ...
`List`的一个主要特点是它可以包含重复元素,并且元素按插入顺序排序。Java标准库提供了几种实现`List`接口的类,如`ArrayList`、`LinkedList`和`Vector`等。其中,`ArrayList`是最常用的实现之一,它基于动态数组...
对于List,可以使用Collections.sort()方法进行排序,这个方法默认使用元素的自然顺序,如果元素是自定义对象,需要实现Comparable接口或者提供Comparator。对于Map,排序主要是针对其键进行,可以使用SortedMap接口...