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集合根据对象中的某一个属性进行排序,开发了此工具类:
按所推荐的程序在IE下跑了下,的确,排序耗时很小。 代码如下: [removed] /* * 洗牌 */ function ... /* * 快速排序,按某个属性,或按“获取排序依据的函数”,来排序. * @method soryBy * @static * @
在实际应用中,我们可能需要对列表中的对象按照它们的某个属性进行排序。这篇博客“List中保存对象,按对象中某一属性排序【含程序源码】”恰好提供了这样的解决方案。下面我们将深入探讨这个主题。 首先,让我们...
对于对象数组,如果要按照某个属性进行排序,`compareFunction`需要检查这些属性的值。例如,如果我们有一个包含人员信息的对象数组,按年龄升序排序,可以这样做: ```javascript let people = [ { name: 'Alice'...
在Java编程中,储存对象并按对象的某个属性进行排序是一项常见的需求。下面将详细介绍三种在Java中实现这一目标的方法,以及如何使用这些方法来优化排序过程。 **第一种方法:使用`TreeSet`** `TreeSet`是Java集合...
2. **自定义排序规则**:当我们需要根据对象的某个属性(如学生对象的年龄)或复杂规则排序时,可以使用`key`参数。例如,`sorted(list, key=lambda x: x.age)`会根据每个学生对象的`age`属性进行排序。 3. **对象...
可以通过两种方式自定义对象的属性大小进行比较,对一个list或数组对根据属性排序一个list或数组
在Python编程中,有时我们需要对列表中的对象进行排序,特别是当列表包含自定义对象时,这些对象具有不同的属性。在给定的示例中,我们探讨了如何根据对象的特定属性(如工资、年龄等)对对象列表进行排序。这里我们...
在JavaScript中,处理数据时经常需要对数组进行排序,特别是当数组包含对象时,我们可能需要根据对象的某个属性来排序。本文将深入探讨如何使用JavaScript实现这一功能。 首先,JavaScript的`Array.prototype.sort...
在处理包含多种类型对象的列表时,我们经常需要根据对象的某个或多个属性进行排序。这个过程称为多条件排序或多字段排序。本文将深入探讨如何在Java和Android环境中实现这个功能。 首先,让我们理解基础的排序方法...
当我们说“arraylist对象中的某个值排序”时,这通常指的是对ArrayList中的元素,而不是ArrayList本身进行排序。ArrayList不支持直接排序,但是我们可以通过调用Collections.sort()方法或者自定义Comparator来实现。...
对于对象数组,排序可能基于对象内的某个属性,例如`time`。在描述中提到的场景中,我们需要根据每个对象的`time`属性来决定其顺序。例如,如果我们有以下数据: ```javascript let data = [ { id: 1, time: ...
Java实体类中Set按照对象的某个字段对set排序 Java实体类中Set按照对象的某个字段对set排序是Java开发中的一种常见需求,特别是在实体类中使用Set集合存储数据时。这种需求主要是为了在查询出实体类对象时,可以...
总结,实现ListView按照内部item的时间属性排序,关键在于正确地排序数据集并更新适配器。通过自定义Comparator或实现Comparable接口,我们可以根据时间属性轻松实现升序或降序排序。在实际开发中,还需要注意性能...