欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

java Comparable接口使用示例,javacomparable,下面代码演示如何实现Co

来源: javaer 分享于  点击 2327 次 点评:54

java Comparable接口使用示例,javacomparable,下面代码演示如何实现Co


下面代码演示如何实现Comparable接口来比较对象的大小。

import java.util.Arrays;/** * * @author cn.outofmemory */public class Main {    /**     * Creates objects using the Car class which implements the Comparable     * interface.     * Compares and sorts the objects by mileage.     */    public void comparableExample() {        //Creating the objects that implements the Comparable interface        Car car1 = new Car("Toyota", 2006, 5000);        Car car2 = new Car("BMW", 2007, 5000);        Car car3 = new Car("Chrysler", 2007, 4000);        //Comparing the objects by calling the compareTo method on one of them        //passing another object as argument.        System.out.println("Car 1 equals Car 2: " + car1.compareTo(car2));        System.out.println("Car 1 equals Car 3: " + car1.compareTo(car3));        System.out.println("Car 2 equals Car 3: " + car2.compareTo(car3));        System.out.println();        //To sort them we create an array which is passed to the Arrays.sort()        //method.        Car[] carArray = new Car[] {car1, car2, car3};        Arrays.sort(carArray);        //Print out the sorted array        for (Car car : carArray)            System.out.println(car.toString());    }    //The Car class used to compare and sort objects.    class Car implements Comparable {        private String make;        private int year;        private int mileage;        public Car(String make, int year, int mileage) {            this.make = make;            this.year = year;            this.mileage = mileage;        }        //Mandatory method when implementing the        //Comparable interface. In this method we        //compare the mileage of the two car objects.        public int compareTo(Object obj) {            if (obj instanceof Car) {                Car car = (Car) obj;                if (this.mileage > car.getMileage())                    return 1;                else if (this.mileage < car.getMileage())                    return -1;            }            return 0;        }        public void setMake(String make) {            this.make = make;        }        public void setYear(int year) {            this.year = year;        }        public void setMileage(int mileage) {            this.mileage = mileage;        }        public String getMake() {            return make;        }        public int getYear() {            return year;        }        public int getMileage() {            return mileage;        }        public String toString() {            StringBuffer buffer = new StringBuffer();            buffer.append("Make: " + make + "\n");            buffer.append("Year: " + year + "\n");            buffer.append("Mileage: " + mileage + "\n");            return buffer.toString();        }    }    /**     * @param args the command line arguments     */    public static void main(String[] args) {        new Main().comparableExample();    }}

上述程序执行结果如下:

Car 1 equals Car 2: 0Car 1 equals Car 3: 1Car 2 equals Car 3: 1Make: ChryslerYear: 2007Mileage: 4000Make: ToyotaYear: 2006Mileage: 5000Make: BMWYear: 2007Mileage: 5000
相关栏目:

用户点评