Java 实例的可比较接口分离排序

Java 实例的可比较接口分离排序,java,comparable,implements,Java,Comparable,Implements,程序: 1) 我想先让大家看看公共汽车,然后是出租车 2) 然后我想按型号、品牌、价格按字母顺序或升序对所有公交车或出租车进行排序 问题: 1) 如何先显示公交车记录,后显示出租车记录 2) 我不知道如何按参数仅对公交车或出租车记录进行排序。 (我过去常常把所有的唱片分类在一起,这让我发疯) 3) 更重要的是,我是否只需要使用超类“class Car implements Compariable”进行排序?一个类只有一个“公共int compareTo(Car-other)” 预期结果应为: (

程序:

1) 我想先让大家看看公共汽车,然后是出租车

2) 然后我想按型号、品牌、价格按字母顺序或升序对所有公交车或出租车进行排序

问题:

1) 如何先显示公交车记录,后显示出租车记录

2) 我不知道如何按参数仅对公交车或出租车记录进行排序。 (我过去常常把所有的唱片分类在一起,这让我发疯)

3) 更重要的是,我是否只需要使用超类“class Car implements Compariable”进行排序?一个类只有一个“公共int compareTo(Car-other)”

预期结果应为:

(公共汽车的许多不同记录------尚未分类)

型号:

品牌:

价格:

门号:

(出租车有许多不同的记录——尚未分类)

型号:

品牌:

价格:

颜色:

   public static void main(String[] args) {
   ArrayList<Car> tablets = new ArrayList<Car>();

     .....something ignored....


    Collections.sort(Car);

    for (Car cars : Car) {
        System.out.println(Car);
    }



 class Car implements comparable <Car>
 {
 private String Model;
 private String Brand;
 private int Price;
 public Car (String Model , String Brand , int Price)
 {
     this.Model = Model;
     this.Brand = Brand;
     this.Price = Price;
 }


 .....Some Get and PrintInfo Method here.....


      public int compareTo (Car other)
      {
      }
 }


  class bus extends Car 
   {
  Private String colour;
  public bus ((String Model , String Brand , int Price , String colour)
  {
      super (Model, Brand, Price);
      this.colour= colour;
  }

   .......some Get and PrintInfo method here......


   }


   class taxi extend Car 
   {
   private int numberofdoor;
   public bus (String Model , String Brand , int Price , int numberofdoor)
   {
       super (  Model , Brand ,  Price );
       this.numberofdoor = numberofdoor;
   }


  .......some Get and PrintInfo method here......
   }
publicstaticvoidmain(字符串[]args){
ArrayList tables=新的ArrayList();
……有些东西被忽略了。。。。
收集.分类(汽车);
用于(汽车:汽车){
系统输出打印(Car);
}
一类汽车
{
私有字符串模型;
自有品牌;
私人int价格;
公共汽车(字符串型号、字符串品牌、整数价格)
{
这个模型=模型;
这个。品牌=品牌;
这个。价格=价格;
}
…这里有一些获取和打印信息的方法。。。。。
公共内部比较(汽车其他)
{
}
}
班车延伸汽车
{
私人弦色;
公交车((字符串型号、字符串品牌、国际价格、字符串颜色)
{
超级(型号、品牌、价格);
这个。颜色=颜色;
}
……这里有一些获取和打印信息的方法。。。。。。
}
等级出租车延伸车
{
私家门;
公交车(字符串型号、字符串品牌、整数价格、整数门)
{
超级(型号、品牌、价格);
this.numberofdoor=numberofdoor;
}
……这里有一些获取和打印信息的方法。。。。。。
}

您可以像这样使用自己的比较器:

Collections.sort(cars, new Comparator<Car>() {
    @Override
    public int compare(Car car1, Car car2) {
        // Both objects are belongs same class
        if (car1 instanceof Bus && car2 instanceof Bus ||
                     car1 instanceof Taxi && car2 instanceof Taxi) {
             // Here compare some property, e.g. model property:
             return car1.getModel().compareTo(car2.getModel());
        } else {
             // Here we say that Taxi object greater than Bus object
             return car1 instanceof Taxi ? 1 : -1;
        }
    }
});
Collections.sort(cars,newcomparator(){
@凌驾
公共整数比较(car1、car2){
//这两个对象属于同一类
if(总线的car1实例和总线的car2实例||
car1滑行实例和car2滑行实例){
//此处比较一些属性,例如模型属性:
返回car1.getModel().compareTo(car2.getModel());
}否则{
//这里我们说出租车的物体比公共汽车的物体大
出租车返回车1实例?1:-1;
}
}
});