按照指定的类型排序
比如有三本书,书名和价格分别如下:《猎物》18.4元、《大明王朝》59.0元、《快乐密码》25.0元。前几天的一篇文章中讲到按照中文拼音进行排序,这里如果想按照价格排序的话怎么办?
其实这里就牵涉到在Java中怎样对对象进行排序处理,这里可以使用 java.util.Collections的sort(List list) 方法。这里需要说明的是中间的list中存放的类必须实现 java.lang.Comparable 接口,这个接口只有一个方法:int compartTo(Object o),当本对象比传入的对象大时,返回一个正整数。
下面是实现的代码,大家可以自己理解一下:
- import java.util.ArrayList;
- import java.util.Collections;
- public class ComparableBook implements Comparable {
- private String name;
- private double price;
- public ComparableBook(String name, double price) {
- this.name = name;
- this.price = price;
- }
- public int compareTo(Object o) {
- ComparableBook other = (ComparableBook)o;
- return (int)price - (int)other.price;
- }
- public String toString() {
- return "(name: " + name + ", price: " + price + ")";
- }
- public static void main(String[] args) {
- ArrayList list = new ArrayList();
- list.add(new ComparableBook("猎物", 18.4));
- list.add(new ComparableBook("大明王朝", 59.0));
- list.add(new ComparableBook("快乐密码", 25.4));
- Collections.sort(list);
- System.out.println(list);
- }
- }
输出结果:
[(name: 猎物, price: 18.4), (name: 快乐密码, price: 25.4), (name: 大明王朝, price: 59.0)]
没有评论 »
还没有评论呢。