我有一个股票价格的arraylist每个stockprices有一个名称,股票交易所,价格和日期。
我试图通过浮动价格组织arraylist。
任何指针都会受到赞赏。
答案 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 example和 diff between comparable and comparator useful information