重写compareTo方法,按不同方式实现排序,小程序

1:写一个Cart类,并实现Comparable接口,同时重写compareTo方法。

package com.paixu;

import com.paixu.Car;
public class Car implements Comparable<Object>{
public final static int STRNO=1;
public final static int STRNAME=2;
public final static int PRICE=3;
public final static int SALE=4;
public static int SortFiled=STRNO;

private long strNo;
private String strName;
private int price;
private int sale;
public long getStrNo() {
return strNo;
}
public void setStrNo(long strNo) {
this.strNo = strNo;
}
public String getStrName() {
return strName;
}
public void setStrName(String strName) {
this.strName = strName;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
public int getSale() {
return sale;
}
public void setSale(int sale) {
this.sale = sale;
}
public Car(long strNo, String strName, int price, int sale) {
super();
this.strNo = strNo;
this.strName = strName;
this.price = price;
this.sale = sale;
}
//按价格
public int compareTo(Object o)
{
Car car = (Car)o;
switch(SortFiled)
{
case STRNO:
return (int) (this.strNo-car.strNo);
case STRNAME:
return this.strName.compareTo(car.strName);
case PRICE:
return this.price-car.price;
case SALE:
return this.sale-car.sale;
default:
break;
}
return 0;
}

}

2:写一个测试类,Test根据不同属性 对不同Cart对象排序

package com.paixu;
import java.util.Arrays;
import java.util.Scanner;
public class Test {


/**
* @param args
*/
public static void change()
{
Scanner scanner  = new Scanner(System.in);
int n;
System.out.println("1:按编号排序2:按价格排序3:按牌子排序4:按销售量排序");
System.out.println("请选择:");
n = scanner.nextInt();
switch(n)
{
case 1:
Car.SortFiled = Car.STRNO;
comm();
break;
case 2:
Car.SortFiled = Car.PRICE;
comm();
break;
case 3:
Car.SortFiled = Car.STRNAME;
comm();
break;
case 4:
Car.SortFiled = Car.SALE;
comm();
break;
default:
break;
}
}
public void start()
{
System.out.println("-------------------欢迎进入汽车排序系统--------------------");
change();
}
public static void comm()
{
Car car1 = new Car(1001l,"aodi",230000,330);
Car car2 = new Car(1002l,"xiandai",150000,900);
Car car3 = new Car(1003l,"dazhong",130000,450);
Car car4 = new Car(1004l,"xiaokang",73000,740);
Car car5 = new Car(1005l,"baoma",690000,30);
Car []cars = {car1,car2,car3,car4,car5};
Arrays.sort(cars);


for(Car car:cars)
{
System.out.println("编号:"+car.getStrNo()+"\t|"+"品牌:"+car.getStrName()+"\t|"+"价格:"+car.getPrice()+"\t|"+"销售:"+car.getSale());
}
}
public static void main(String[] args) {
Test t = new Test();
t.start();
}


}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值