如何实现自定义类对象数组的排序
2013-07-07 11:16
489 查看
如何实现自定义类对象数组的排序
分类: Java学习类2009-07-31 09:04 2254人阅读 评论(0) 收藏 举报stringobjectclassimport
我想熟悉Arrays.sort()方法的朋友,无疑肯定是掌握了如何对基本类型的数组进行排如序,而在这里,我想说一下,如何对自定义类对象的数组进行排序?
例如,我定义一个Student类,拥有两个属性,即姓名(String name)和年龄(int age),如果现在我声明了一个Student类的对象数组,那么,如何利用Arrays.sort()方法对这个自定义对象数组加以排序呢?
其实,很简单,只需要做到以下3点即可:
首先,让需要进行排序的自定义类,如Student,去实现Comparable 接口;
其次,重写Comparable接口唯一的方法:int compareTo(Object o) ;
最后,调用Arrays.sort()方法对自定义对象数组加以排序。
这里,我写了一个简单的程序加以说明,如下:
import java.util.Arrays;
public class Test {
public static void main(String[] args) {
Student[] myStudent = new Student[] { new Student("zhangsan", 22),
new Student("lisi", 24), new Student("wangwu",
22),
new Student("zhaoliu", 23) };
System.out.println("----------before sorted---------");
for (Student e : myStudent)
System.out.println(e);
System.out.println("/n/n----------after sorted---------");
Arrays.sort(myStudent);
for (Student e : myStudent)
System.out.println(e);
}
}
class Student implements Comparable {
private String name;
private int age;
public Student(String name, int age) {
this.name = name;
this.age = age;
}
public String toString() {
return " Name:" + name + "/tage:" + age;
}
public int compareTo(Object o) {
Student s = (Student) o;
int result = age > s.age ? 1 : (age == s.age ?
0 : -1);
if (result == 0) {
result = name.compareTo(s.name);
}
return result;
}
}
在此附上运行结果,以供参考,如下:
----------before sorted---------
Name:zhangsan age:22
Name:lisi age:24
Name:wangwu age:22
Name:zhaoliu age:23
----------after sorted---------
Name:wangwu age:22
Name:zhangsan age:22
Name:zhaoliu age:23
Name:lisi age:24
相关文章推荐
- 如何实现自定义类对象数组的排序
- js对象如何实现数组索引功能并且自定义自己的方法 (4种方法)
- 实现Comparable接口对存放自定义对象列表(数组)进行排序
- 使用Comparable、Comparator接口实现对对象数组、List集合自定义排序
- 自定义类型数组排序的两种实现方式
- Java实现自定义对象的排序
- 如何运用PHP函数usort()实现自定义排序
- PHP函数sort()如何实现数组排序
- Javascript 数组自定义排序,并获取排序后的保存原索引的同序数组(堆排序实现)
- java 如何对自定义的对象进行排序
- 对于集合中的自定义对象使用collections.sort 进行排序,需要实现compartor接口
- c++如何自定义ostream对象,使其实现cout的功能
- JavaScript基于对象方法实现数组去重及排序操作示例
- JavaScript对象数组如何按指定属性和排序方向进行排序
- 常见对象_数组高级选择排序原理图解、数组高级选择排序代码实现
- Java自定义对象数组、集合排序
- JavaScript-如何实现数组的随机排序?
- java 如何对自定义的对象进行排序
- 实现比较器接口IComparable<T>,让自定义类型数组也能排序
- iOS--自定义相册---对象数组按照时间戳排序