`

ArrayList中对象排序

    博客分类:
  • Java
 
阅读更多

经常会遇到这样的问题 我们将一组对象存放进List中去,然后我们希望,存放在List当中的对象是根据对象中的某一个属性进行排序的。例如,很经典的例子,ArrayList存放了Person对象,person有很多属性,name,age,gender等等。

这时我们希望存放在ArrayList当中的Person按照年龄排序。方法如下:

先声明一个Person 类

package arraysort;

public class Person {
	private String name = "";
	private String gender="";
	private int age = 0;
	
	public Person(String name,int age){
		this.name = name;
		this.age = age;
	}
	
	public String getName() {
		return name;
	}
	
	public void setName(String name) {
		this.name = name;
	}
	
	public String getGender() {
		return gender;
	}
	
	public void setGender(String gender) {
		this.gender = gender;
	}
	
	public int getAge() {
		return age;
	}
	
	public void setAge(int age) {
		this.age = age;
	}
	
}
 

然后我们实现自己的比较规则,MyComparator

package arraysort;

import java.util.Comparator;


public class MyComparator implements Comparator {

	@Override
	public int compare(Object o1, Object o2) {
		Person person1 = (Person)o1;
		Person person2 = (Person)o2;
		if(person1.getAge() < person2.getAge()){//通过这里设定排列顺序
			return 1;
		}else{
			return 0;
		}
	}
}

 最后测试一下 我们的比较规则 是否可以如所愿

package arraysort;

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

public class ArrayListSort {

	public static void main(String args[]){
		List list = new ArrayList<Person>();
		list.add(new Person("Crazy2",34));
		list.add(new Person("Crazy1",35));
		list.add(new Person("Crazy3",33));
		list.add(new Person("Crazy5",31));
		list.add(new Person("Crazy4",32));
		
		for(int i=0; i < list.size();i++){
			Person p = (Person)list.get(i);
			System.out.println("Name:" + p.getName() + "Age:" + p.getAge());
		}
		
		System.out.println("The Above is unsorted.");
		
		Comparator  comp = new MyComparator();
		Collections.sort(list,comp);
		
		for(int i=0; i < list.size();i++){
			Person p = (Person)list.get(i);
			System.out.println("Name:" + p.getName() + "Age:" + p.getAge());
		}
	}
}

 执行结果:

Name:Crazy2Age:34
Name:Crazy1Age:35
Name:Crazy3Age:33
Name:Crazy5Age:31
Name:Crazy4Age:32
The Above is unsorted.
Name:Crazy1Age:35
Name:Crazy2Age:34
Name:Crazy3Age:33
Name:Crazy4Age:32
Name:Crazy5Age:31
 

 

 

参考网络资源。

分享到:
评论

相关推荐

    arraylist 对象 数组排序

    当我们说“arraylist对象中的某个值排序”时,这通常指的是对ArrayList中的元素,而不是ArrayList本身进行排序。ArrayList不支持直接排序,但是我们可以通过调用Collections.sort()方法或者自定义Comparator来实现。...

    基于ArrayList的对象多属性值排序

    在Java编程中,基于ArrayList的对象多属性值排序是一项常见的任务,尤其在处理数据集合时。ArrayList是Java集合框架的一部分,它提供了动态数组的功能,允许我们存储和操作对象数组。本主题将深入探讨如何对...

    arrayList排序

    在使用这个方法前,确保ArrayList中的元素类型实现了Comparable接口,这样默认按照自然顺序排序;或者提供一个Comparator来定义自定义的排序规则。 1. 使用Comparable接口排序: 当ArrayList中的元素是基本数据...

    ASP .NET - ArrayList对象

    ASP.NET中的ArrayList对象是.NET框架中System.Collections命名空间下的一个类,它提供了一个动态大小的数组,用于存储各种类型的数据。ArrayList对象是一个非常基础且灵活的集合类,它允许程序员在运行时添加、删除...

    java实现ArrayList根据存储对象排序功能示例

    java实现ArrayList根据存储对象排序功能示例主要介绍了java中ArrayList的排序功能,通过构建新的比较对象Comparator实现排序操作。本文将详细讲解java中ArrayList的相关运算和排序操作技巧,并提供了一个实例形式的...

    对ArrayList里装载的对象进行自定义排序(任意对象、任何字段、任何规则) !

    对ArrayList里装载的对象进行自定义排序(任意对象、任何字段、任何规则) !...ArrayList中可装载任何对象,并以指定的该对象的字段对该集合中的对象进行指定形式的排序(正序、反序)。 任何类通用........

    对arraylist中元素进行排序实例代码

    在main方法中,我们首先创建了一个ArrayList对象,并添加了多个Emp对象。然后,我们使用Collections.sort方法将ArrayList中的元素进行排序。最后,我们使用for循环将排序后的ArrayList中的元素进行输出。 需要注意...

    Java 对象排序详解.rar_java 对象排序_对象_排序

    在Java编程语言中,对象排序是一项关键操作,特别是在处理集合数据结构时。本文将深入探讨如何对ArrayList、HashSet、TreeSet以及数组中的对象进行排序。理解这些排序机制对于编写高效且可维护的代码至关重要。 ...

    ArrayList转化为DataTable

    在给定的代码段中,我们看到一个名为`manList`的方法,它的主要任务是将ArrayList对象转换为DataTable对象。这个方法首先创建了一个ArrayList实例`result`和一个DataTable实例`dt`。如果`result`不为空且包含至少一...

    C#160使用对象ArrayList填充DataGrid 源代码

    在本示例中,我们探讨的主题是如何使用对象ArrayList来填充DataGrid控件。DataGrid控件是Windows Forms应用程序中用于显示数据的一种常见方式,它允许用户查看、编辑和管理表格形式的数据。 ArrayList是.NET ...

    多个对象列表排序

    对于复杂的情况,比如列表中的对象没有公共的排序属性,而是需要根据多个不同的属性进行排序,我们可以创建一个复合比较器,组合多个`Comparator`。例如,我们有`Car`类,包含`String`的`brand`和`int`的`year`属性...

    java的arraylist排序示例(arraylist用法)

    在这个示例中,我们将深入探讨如何对ArrayList中的对象进行排序,以及ArrayList的一些基本用法。 首先,我们创建了一个名为`Test`的类,其中包含主方法`main`,这是程序的入口点。在`main`方法中,我们实例化了几个...

    java中ArrayList的用法

    `ArrayList`是Java集合框架中的一个动态数组类,它能够存储任意类型的对象,并且在运行时动态调整其大小。这使得`ArrayList`成为处理数量未知的数据集合时的一个非常实用的选择。 #### 二、基本用法与初始化 `...

    学生管理系统(使用ArrayList)

    在ArrayList中,我们可以使用索引来访问和操作这些对象,如获取某个学生的成绩,或者按学号排序学生列表。 实现这个管理系统时,会涉及到以下ArrayList的方法: 1. `add(E element)`: 添加元素到ArrayList末尾,...

    有关于C#的程序(ArrayList类,动态添加,删除的)

    ArrayList提供了丰富的成员方法来操作其中的元素,如添加、删除、查找和排序等。 2. **动态添加元素** - `Add`: 使用Add方法可以在ArrayList的末尾添加一个元素。例如,`myArrayList.Add(someObject)` 将对象...

    java对象排序

    在Java编程语言中,对象排序是一项常见的操作,特别是在处理数据结构如数组或集合时。`java sort`标签表明我们关注的是使用Java内置的排序机制。本文将深入探讨Java中的对象排序,包括基本概念、API使用以及自定义...

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

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

    Java针对ArrayList自定义排序的2种实现方法

    在测试类中,我们可以创建一个ArrayList,添加一些Student对象,然后使用Collections.sort()方法来排序学生对象数组。代码如下: ```java import java.util.*; public class Test { public static void printData...

Global site tag (gtag.js) - Google Analytics