List将集合【{宝马1系,100000},{宝马2系,200000},{奥迪2系,220000},{奥迪1系,120000}】排序,先拍名字后拍价格
时间: 2023-11-01 20:30:20 浏览: 125
可以使用Java中的Collections.sort()方法对List中的元素进行排序。其中,可以指定排序的方式和排序的比较器(Comparator)。
以下是代码示例:
```java
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Car> cars = new ArrayList<>();
cars.add(new Car("宝马1系", 100000));
cars.add(new Car("宝马2系", 200000));
cars.add(new Car("奥迪2系", 220000));
cars.add(new Car("奥迪1系", 120000));
// 按照名字升序排序,若名字相同,则按照价格升序排序
Collections.sort(cars, new Comparator<Car>() {
@Override
public int compare(Car o1, Car o2) {
if (o1.getName().equals(o2.getName())) {
return o1.getPrice() - o2.getPrice();
} else {
return o1.getName().compareTo(o2.getName());
}
}
});
System.out.println(cars);
}
}
class Car {
private String name;
private int price;
public Car(String name, int price) {
this.name = name;
this.price = price;
}
public String getName() {
return name;
}
public int getPrice() {
return price;
}
@Override
public String toString() {
return "Car{" +
"name='" + name + '\'' +
", price=" + price +
'}';
}
}
```
输出结果为:
```
[Car{name='宝马1系', price=100000}, Car{name='宝马2系', price=200000}, Car{name='奥迪1系', price=120000}, Car{name='奥迪2系', price=220000}]
```
其中,使用了匿名内部类的方式实现了Comparator接口,并覆写了compare方法,指定了按照名字升序排序,若名字相同,则按照价格升序排序的方式。在sort方法中传入cars列表和比较器,就可以对列表进行排序。最后输出排序后的列表。
阅读全文