Java中按库存排序库存相同就按价格降序排序
时间: 2023-08-04 11:38:39 浏览: 62
可以使用Java中的Collections.sort()方法进行排序,排序时可以自定义一个Comparator来指定排序规则。对于按库存排序,可以先按照库存从大到小排序,如果库存相同再按照价格从高到低排序,代码如下:
```java
// 定义商品类
class Product {
private int stock; // 库存
private double price; // 价格
public Product(int stock, double price) {
this.stock = stock;
this.price = price;
}
public int getStock() {
return stock;
}
public double getPrice() {
return price;
}
}
// 自定义Comparator
class ProductComparator implements Comparator<Product> {
@Override
public int compare(Product p1, Product p2) {
if (p1.getStock() != p2.getStock()) {
// 按库存从大到小排序
return p2.getStock() - p1.getStock();
} else {
// 库存相同按价格从高到低排序
return Double.compare(p2.getPrice(), p1.getPrice());
}
}
}
// 测试
List<Product> products = new ArrayList<>();
products.add(new Product(10, 5.0));
products.add(new Product(20, 6.0));
products.add(new Product(30, 4.0));
products.add(new Product(20, 7.0));
Collections.sort(products, new ProductComparator());
for (Product product : products) {
System.out.println("库存:" + product.getStock() + ",价格:" + product.getPrice());
}
```
输出结果如下:
```
库存:30,价格:4.0
库存:20,价格:7.0
库存:20,价格:6.0
库存:10,价格:5.0
```
相关推荐
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)