使用集合排序数组列表

时间:2021-03-27 17:13:31

I want to use the Comparator object of the Collections framework to sort out an ArrayList by an specific attribute.

我想使用Collections框架的Comparator对象来按特定属性对ArrayList进行排序。

I have an ArrayList called measureEviArray this array contains objects type MeasureEvi.

我有一个名为measureEviArray的ArrayList,这个数组包含对象类型MeasureEvi。

The class MeasureEvi has an attribute called mCoordenate which corresponds to a PointF data type.

MeasureEvi类有一个名为mCoordenate的属性,它对应于PointF数据类型。

public class MeasureEvi {

private int mIndex;                             //  
private int mOrderIndex;
private int eIndex;                             // 
private TextView mTag;                          // 
private PointF mCoordenate; 
}

What I want is to sort out that array depending on the coordenates given to each object in X (mCoordenate.x)

我想要的是根据X中每个对象的coordenates来排序该数组(mCoordenate.x)

Is it possible to use Collections for this and get an Array Ordenate from the minor to the greatest in X axis?

是否可以为此使用集合并从X轴中获取从次要到最大的数组Ordenate?

I was trying to implement this way:

我试图以这种方式实现:

 Collections.sort(measureEviArray, new Comparator<MeasureEvi>() {
        @Override
        public int compare(MeasureEvi measureEvi, MeasureEvi t1) {
            return measureEvi.getmCoordenate().x.compareTo(t1.getmCoordenate().x);
        }
    });

but compareTo is not an Option, cannot resolve method.

但是compareTo不是Option,无法解析方法。

1 个解决方案

#1


2  

Since x from PointF is a float, use Float.compare(float f1, float f2):

由于PointF中的x是浮点数,因此使用Float.compare(float f1,float f2):

return Float.compare(measureEvi.getmCoordenate().x, t1.getmCoordenate().x);

#1


2  

Since x from PointF is a float, use Float.compare(float f1, float f2):

由于PointF中的x是浮点数,因此使用Float.compare(float f1,float f2):

return Float.compare(measureEvi.getmCoordenate().x, t1.getmCoordenate().x);