通过float对对象的ArrayList进行排序

时间:2012-03-30 11:16:34

标签: java processing

我有一个股票价格的arraylist每个stockprices有一个名称,股票交易所,价格和日期。

我试图通过浮动价格组织arraylist。

任何指针都会受到赞赏。

6 个答案:

答案 0 :(得分:6)

使用java.util.Collections.sort()并指定您自己的java.util.Comparator

答案 1 :(得分:4)

您需要实施自己的比较器或使您的stocprices扩展为Comparable

Collections.sort(stockPricesArrayList, new Comparator<StockPrice>() {

    public int compare(StockPrice p1, StockPrices p2) {
         return (int) p1.getPrice()-p2.getPrice();
    }
}

答案 2 :(得分:3)

根据jdk 1.7的要求,当反转params的位置时,结果必须相同。所以,减法是错误的,我认为这是对float数组进行排序的最简单方法:

Collections.sort(Arrays, new Comparator<Object>() {
            @Override
            public int compare(Object o1, Object o2) {
                return Float.compare(o1.getFloatValue(), o2.getFloatValue());
            }
        });

答案 3 :(得分:1)

在您的课程StockPrice中,您可以实现Comparable。它看起来像是:

public class StockPrice implements Comparable<StockPrice> {

    // All your code here

    @Override
    public int compareTo(StockPrice another) {
        // price fields should be Float instead of float
        return this.price.compareTo(another.price);
    }

}

然后您可以使用Collections.sort()

答案 4 :(得分:0)

我假设您有一个用于存储价格的课程。这里最简单的方法是在此类中实现Comparable并返回类似Float.compare(this.price, other.price)的内容。

答案 5 :(得分:0)

您需要实现Comparable接口,并为您的类定义compareTo()方法。完成后,您可以拥有一个arraylist并对其进行排序。有关示例,请参阅此link。 几乎没有重要的链接 another examplediff between comparable and comparator useful information