如何实现自定义类对象数组的排序
来源:互联网 发布:python 字典嵌套 编辑:程序博客网 时间:2024/06/05 18:20
如何实现自定义类对象数组的排序
我想熟悉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
- 如何实现自定义类对象数组的排序
- 如何实现自定义类对象数组的排序
- 自定义对象数组的排序
- 自定义类的数组排序
- Java实现自定义对象的排序
- Java实现自定义对象的排序
- 排序数组中的自定义对象
- js对象如何实现数组索引功能并且自定义自己的方法 (4种方法)
- TreeMap中如何实现自定义类key值的排序
- iOS 自定义对象数组排序 自定义对象某属性排序
- JavaScript-如何实现数组的随机排序?
- 如何实现数组的随机排序?
- 对jsonArray数组存储的对象做自定义按多个值排序
- 如何实现对象的排序Comparable
- 任意对象数组ArrayList的排序法(可自定义排序字段、排序方向)
- java 如何对自定义的对象进行排序
- 如何对NSArray中自定义的对象进行排序
- 自定义类的数组排序代码
- 联想Y470装windows8 -- 两天装3遍的经验总结,供小白鼠使用
- uva 11374 Airport Express(最短路dijistra+堆优化,4级)
- php 生成不重复随机数(组)的几种方法
- Unity3D用代码方式创建一个Cube并对其进行操作用C#实现
- Android后台开启服务默默拍照
- 如何实现自定义类对象数组的排序
- DOM动态添加HTML节点 appendChild、removeChild
- Opencv cvCircle函数
- ssl介绍以及双向认证和单向认证原理 (转)
- C shell编程笔记
- Java容器集合学习心得
- HDU 1116 Play on Words(有向图欧拉路)
- Mercurial项目管理实践
- 在VMWare Workstation8.0上使用ubuntu11安装和配置Hadoop群集环境02_配置虚拟机之间SSH无密码登录