我有一个Java对象数组。我们说Product products[]
。
每种产品都有价格,例如product.getPrice()
。
我可以通过价格订购该产品阵列的最佳方式是什么,所以我可以致电products[0]
获取最贵的产品,products[products.length-1]
获取最便宜的产品?
答案 0 :(得分:4)
这样的事情:
Arrays.sort(products, new Comparator<Product>() {
@Override
public int compare(Product p1, Product p2) {
if (p1.getPrice() > p2.getPrice()) return -1;
if (p1.getPrice() < p2.getPrice()) return 1;
return 0;
}
});
答案 1 :(得分:1)
我建议使用ArrayList
来执行此操作。使用for循环从最昂贵到最便宜的顺序索引它们,如下所示:
ArrayList products = new ArrayList();
final int MAX_PRICE = 9999; // Or whatever the maximum price should be
for (int i = MAX_PRICE, i > 0, i--) {
if (product.getPrice() == i) {
products.add(product);
}
}
答案 2 :(得分:0)
您还可以使用可比较界面覆盖 compareTo 方法,将模板T覆盖为产品。 然后使用以下代码
Collections.sort(products);
您始终可以使用Oracle文档了解docs.oracle.com
中的可比接口