Java 按浮点对对象的ArrayList排序

Java 按浮点对对象的ArrayList排序,java,processing,Java,Processing,我有一个股票价格列表,每个股票价格都有一个名称、股票交易所、价格和日期 我试图按浮动价格组织arraylist 任何指针都将不胜感激。使用java.util.Collections.sort()并指定自己的java.util.Comparator我假设您有一个用于存储价格的类。这里最简单的方法是在这个类中实现并返回类似于Float.compare(this.price,other.price)的内容 您需要实现自己的比较器,或者使您的StocPrice具有可比性 Collections.sort

我有一个股票价格列表,每个股票价格都有一个名称、股票交易所、价格和日期

我试图按浮动价格组织arraylist


任何指针都将不胜感激。

使用
java.util.Collections.sort()
并指定自己的
java.util.Comparator
我假设您有一个用于存储价格的类。这里最简单的方法是在这个类中实现并返回类似于
Float.compare(this.price,other.price)
的内容

您需要实现自己的比较器,或者使您的StocPrice具有可比性

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

    public int compare(StockPrice p1, StockPrices p2) {
         return (int) p1.getPrice()-p2.getPrice();
    }
}
Collections.sort(stockPricesArrayList,newcomparator(){
公共整数比较(股价p1、股价p2){
返回(int)p1.getPrice()-p2.getPrice();
}
}

您需要实现Comparable接口,并为类定义compareTo()方法。完成后,您可以拥有一个arraylist并对其进行排序。请参见此示例。 没有什么比这更重要的链接了 及

在您的类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);
    }

}
公共类股票价格实现可比性{
//所有代码都在这里
@凌驾
公开国际比较(股票价格){
//价格字段应为浮动而不是浮动
返回此.price.compareTo(另一个.price);
}
}

然后可以使用
Collections.sort()

根据JDK 1.7的要求,反转参数位置时结果必须相同

comparator.compare(a, b) == -comparator.compare(b, a)
所以,减法将是错误的,我认为下面的代码是排序浮点数组的最简单方法

Collections.sort(Arrays, new Comparator<Object>() {
            @Override
            public int compare(Object o1, Object o2) {
                return Float.compare(o1.getFloatValue(), o2.getFloatValue());
            }
        });
Collections.sort(数组、新比较器(){
@凌驾
公共整数比较(对象o1、对象o2){
返回Float.compare(o1.getFloatValue(),o2.getFloatValue());
}
});

谢谢。考虑到28比-123大吗?@Vuzuggu,您可以在
比较器中定义排序规则。