问题描述:
制作汽车类,现有格式汽车5款,名字,生产日期 与 价格。
将他们存放在集合中并按价格排序再迭代输出
package com.exercise2_4;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
class Car implements Comparable<Car>{
String name;
String date;
int price;
public Car(String name, String date, int price) {
super();
this.name = name;
this.date = date;
this.price = price;
}
@Override
public int compareTo(Car arg0) {
return this.price-arg0.price;
}
@Override
public String toString() {
return "名字:" + name + ", 生产日期:" + date + ", 价格:" + price ;
}
//setter和getter
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
}
/*//方法二:
//自定义一个比较器
class MyComparator implements Comparator<Car>{
public int compare(Car car1,Car car2) {
return car1.price-car1.price;//按照升序排
//-(car1.price-car1.price)按照降序排
}
}
*/
public class Test {
public static void main(String[] args) {
List<Car> cars = new ArrayList<Car>();
cars.add(new Car("玛莎拉蒂", "1999-3", 9999));
cars.add(new Car("宝马", "1998-2", 1000));
cars.add(new Car("奔驰", "2009-3", 1003));
cars.add(new Car("宾利", "2020-4", 1002));
System.out.println("排序前:");
for (Car car : cars)
System.out.println(car.toString());
Collections.sort(cars); //按照价格进行排序
System.out.println("排序后:");
for (Car car : cars)
System.out.println(car.toString());
}
}