`
coderzhcn
  • 浏览: 19888 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

对对象按对象的某个属性进行排序

 
阅读更多
public class Student<T> implements Comparable<T> {

private int age;
private String name;

public Student() {
super();
}

public Student(int age, String name) {
super();
this.age = age;
this.name = name;
}

public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}

public String getName() {
return name;
}

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

@Override
public int compareTo(Object o) {

if (o == null) {
try {
throw new Exception("该对象为空!");
} catch (Exception e) {
e.printStackTrace();
}
}

if (!(this.getClass().getName().equals(o.getClass().getName()
.toString()))) {
try {
throw new Exception("该对象的类名不一致!");
} catch (Exception e) {
e.printStackTrace();
}
}

if (!(o instanceof Student)) {
try {
throw new Exception("该对象不是Student的实例!");
} catch (Exception e) {
e.printStackTrace();
}
}
Student student = (Student) o;

return this.getAge() - student.getAge();
}
}


对某个对象按照对象的某个属性进行排序,没必要自己写一些方法,进行排序。

利用JDK的Collections的排序方法即可,

1、该对象的实现Comparable<T>接口

2、重写public int compareTo(Object o)方法。

3、测试方法

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

public class Test {

/**
* @param args
*/
public static void main(String[] args) {
List<Student> students = new ArrayList<Student>();
students.add(new Student(29, "张三"));
students.add(new Student(28, "张三"));
students.add(new Student(30, "张三"));
students.add(new Student(31, "张三"));
students.add(new Student(24, "张三"));
students.add(new Student(25, "张三"));
students.add(new Student(27, "张三"));
// 进对象集合进行排序
Collections.sort(students);


// 遍历集合
for (Student s : students) {
System.out.println("age:" + s.getAge() + " name:" + s.getName());
}

}

}

分享到:
评论

相关推荐

    List集合按照对象中某个属性排序通用工具类(按对象中某属性排序)

    在开发中,我们可能会遇到,我们会根据不同情况对一个List集合进行排序操作,为了方便List集合根据对象中的某一个属性进行排序,开发了此工具类:

    js对象数组按属性快速排序

    按所推荐的程序在IE下跑了下,的确,排序耗时很小。 代码如下: [removed] /* * 洗牌 */ function ... /* * 快速排序,按某个属性,或按“获取排序依据的函数”,来排序. * @method soryBy * @static * @

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

    在实际应用中,我们可能需要对列表中的对象按照它们的某个属性进行排序。这篇博客“List中保存对象,按对象中某一属性排序【含程序源码】”恰好提供了这样的解决方案。下面我们将深入探讨这个主题。 首先,让我们...

    JavaScript对象数组如何按指定属性和排序方向进行排序

    对于对象数组,如果要按照某个属性进行排序,`compareFunction`需要检查这些属性的值。例如,如果我们有一个包含人员信息的对象数组,按年龄升序排序,可以这样做: ```javascript let people = [ { name: 'Alice'...

    Java实现储存对象并按对象某属性排序的几种方法示例

    在Java编程中,储存对象并按对象的某个属性进行排序是一项常见的需求。下面将详细介绍三种在Java中实现这一目标的方法,以及如何使用这些方法来优化排序过程。 **第一种方法:使用`TreeSet`** `TreeSet`是Java集合...

    集合对象排序

    2. **自定义排序规则**:当我们需要根据对象的某个属性(如学生对象的年龄)或复杂规则排序时,可以使用`key`参数。例如,`sorted(list, key=lambda x: x.age)`会根据每个学生对象的`age`属性进行排序。 3. **对象...

    Compable和Comparator自定义对象属性排序

    可以通过两种方式自定义对象的属性大小进行比较,对一个list或数组对根据属性排序一个list或数组

    python实现对象列表根据某个属性排序的方法详解

    在Python编程中,有时我们需要对列表中的对象进行排序,特别是当列表包含自定义对象时,这些对象具有不同的属性。在给定的示例中,我们探讨了如何根据对象的特定属性(如工资、年龄等)对对象列表进行排序。这里我们...

    js 根据对象数组中的属性进行排序实现代码

    在JavaScript中,处理数据时经常需要对数组进行排序,特别是当数组包含对象时,我们可能需要根据对象的某个属性来排序。本文将深入探讨如何使用JavaScript实现这一功能。 首先,JavaScript的`Array.prototype.sort...

    多个对象列表排序

    在处理包含多种类型对象的列表时,我们经常需要根据对象的某个或多个属性进行排序。这个过程称为多条件排序或多字段排序。本文将深入探讨如何在Java和Android环境中实现这个功能。 首先,让我们理解基础的排序方法...

    arraylist 对象 数组排序

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

    (时间)排序函数、按某一属性排序

    对于对象数组,排序可能基于对象内的某个属性,例如`time`。在描述中提到的场景中,我们需要根据每个对象的`time`属性来决定其顺序。例如,如果我们有以下数据: ```javascript let data = [ { id: 1, time: ...

    Java实体类中Set按照对象的某个字段对set排序

    Java实体类中Set按照对象的某个字段对set排序 Java实体类中Set按照对象的某个字段对set排序是Java开发中的一种常见需求,特别是在实体类中使用Set集合存储数据时。这种需求主要是为了在查询出实体类对象时,可以...

    listview按照内部item的时间属性排序

    总结,实现ListView按照内部item的时间属性排序,关键在于正确地排序数据集并更新适配器。通过自定义Comparator或实现Comparable接口,我们可以根据时间属性轻松实现升序或降序排序。在实际开发中,还需要注意性能...

Global site tag (gtag.js) - Google Analytics