如何在ArrayList中获取最大值

时间:2017-01-04 10:13:47

标签: android arraylist compare

我想知道如何比较数组列表中的所有数组列表元素?我想比较最大数字的元素。与第一元素和第二元素相比,第二元素与第三元素相比。怎么做?

List <Product> productList= new ArrayList<>();

有人能举例说明如何与这个变量进行比较吗?

productList.get(i).getPrice()

感谢您的帮助。

2 个答案:

答案 0 :(得分:4)

如果您只想要最大值,请使用:

public int getMax(ArrayList list){
    int max = Integer.MIN_VALUE;
    for(int i=0; i<list.size(); i++){
        if(list.get(i) > max){
            max = list.get(i);
        }
    }
    return max;
}

更好的方法是比较器:

public class compareProduct implements Comparator<Product> {
    public int compare(Product a, Product b) {
        if (a.getPrice() > b.getPrice())
            return -1; // highest value first
        if (a.getPrice() == b.getPrice())
            return 0;
        return 1;
    }
}

然后就这样做:

Product p = Collections.max(products, new compareProduct());

答案 1 :(得分:0)

比较像这样的东西

for (int i = 0; i < productList.size(); i++) {

  for (int j = i+1; j < productList.size(); j++) {

    // compare productList.get(i)  and productList.get(j)

  }
}