`

对list集合包含的对象排序

阅读更多

    具了解有几种方法实现,实现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中对象多属性排序及各属性排序设置

    本文将深入探讨如何在Java的List中对包含多个属性的对象进行排序,并且支持动态设置每个属性的排序方式。这个功能的实现是通过泛型和自定义比较器(Comparator)来完成的,对于复杂的数据排序需求具有很高的灵活性。...

    集合对象排序

    在编程领域,集合对象排序是一项基础且重要的任务,它涉及到数据结构和算法的知识。当我们处理包含多个元素的数据集,如数组、列表或集合时,排序能够帮助我们快速查找、分析和展示信息。本文将深入探讨如何对对象...

    list集合树状排序-java

    在本场景中,我们需要对List中的对象进行排序,这些对象通常包含表示层级关系的属性,如父ID、子节点列表等。 接下来,我们要解决的是“树状排序”。树状排序,或称为树形排序,是指将具有树结构的数据进行排序。在...

    C#对list列表进行随机排序的方法

    在C#编程中,列表(List)是一种常用的集合类,用于存储一组同类型的元素。当需要对列表中的元素进行随机排序时,可以采用多种方法。这里我们重点介绍一种基于`Random`类的方法,如标题和描述中所述。这种方法通过创建...

    List对象排序通用方法

    `List`对象排序的通用方法对于优化程序性能、处理动态数据尤其关键,特别是当从数据库查询的数据需要根据特定字段进行调整时。本文将详细讨论如何对包含对象的`List`进行排序,包括正序和倒序,以及如何按指定参数...

    java 集合分组与排序

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

    JAVA像SQL一样对List对象集合进行排序

    JAVA像SQL一样对List对象集合进行排序 在本文中,我们将详细介绍如何使用JAVA像SQL一样对List对象集合进行排序。我们将通过五个部分,分别介绍字符串List排序、整数类型List排序、对象字段对对象List排序、使用...

    List对象集合的排序:比较器Comparator(简单例子)

    当需要对`List`中的对象进行自定义排序时,`Comparator`接口就派上了用场。`Comparator`是一个可以比较两个对象的类,它提供了一种方式来定义自定义的比较规则,从而实现灵活的排序逻辑。 `Comparator`接口位于`...

    java版本List中对象多属性排序.rar

    在Java编程中,对List集合中的对象进行多属性排序是一项常见的任务。这通常涉及到自定义比较逻辑,以满足复杂的数据排序需求。在这个“java版本List中对象多属性排序.rar”压缩包中,我们可能找到了一个关于如何在...

    arraylist 对象 数组排序

    在Java编程语言中,ArrayList是...总的来说,对ArrayList中的对象进行排序涉及到Java集合框架的核心概念,包括List接口、Collections工具类以及Comparator接口。理解这些知识点对于编写高效、灵活的Java代码至关重要。

    java中进行集合排序

    在Java编程中,对集合(如`List`)中的对象进行排序是一项常见的操作。本文将详细介绍如何根据对象的特定属性来实现升序或降序排序。 #### 标题:Java中进行集合排序 该标题表明文章的主题是关于Java语言中如何对...

    List中保存对象,按对象中某一属性排序【含程序源码】

    首先,让我们理解列表(List)和对象排序的基本概念。列表是Java集合框架的一部分,它允许我们在特定位置插入、删除或查找元素。在Java中,`ArrayList`和`LinkedList`是两种常用的列表实现。当列表包含对象时,这些...

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

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

    java中List对象列表实现去重或取出及排序的方法

    在Java中,对List对象列表实现去重或取出及排序是一种常见的操作。下面将详细介绍相关的方法和实现。 1. 实体类重写equals和hashCode方法 在Java中,想要去重List对象列表,首先需要重写实体类的equals和hashCode...

    C#实体类和实体类集合的自动排序

    1. IBindingList:这个接口提供了对列表的动态数据绑定支持,包括添加、删除、排序等操作。通过实现AddNew、ApplySort、RemoveSort、SupportsSorting和SortDirection等方法,我们可以使实体类集合支持排序。 2. ...

    java 中如何从LIST 对象取值

    `List`的一个主要特点是它可以包含重复元素,并且元素按插入顺序排序。Java标准库提供了几种实现`List`接口的类,如`ArrayList`、`LinkedList`和`Vector`等。其中,`ArrayList`是最常用的实现之一,它基于动态数组...

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

    对于List,可以使用Collections.sort()方法进行排序,这个方法默认使用元素的自然顺序,如果元素是自定义对象,需要实现Comparable接口或者提供Comparator。对于Map,排序主要是针对其键进行,可以使用SortedMap接口...

Global site tag (gtag.js) - Google Analytics