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