java - 使用集合对数组列表进行排序

标签 java android arrays sorting

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

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

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

public class MeasureEvi {

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

我想要的是根据 X (mCoordenate.x) 中每个对象的坐标对数组进行排序

是否可以为此使用 Collections 并获得 X 轴上从小到大的 Array Ordenate?

我试图以这种方式实现:

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

但 compareTo 不是选项,无法解析方法。

最佳答案

x来自 PointF是一个float,使用Float.compare(float f1, float f2) :

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

关于java - 使用集合对数组列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43595022/

相关文章:

Java 绘图到 JPanel(调试)

java - 用于可视化和实现椭圆曲线加密的工具

C动态结构错误

java - Android Studio SDK 路径错误

c - 为什么 [static AND] 在编译时不强制执行?

c# - 如何用垃圾填充字节数组?

java - Spark Structured Streaming 自动将时间戳转换为本地时间

java - 通过 Runtime.getRuntime().exec 运行 linux 命令时出错

Android - 加密密码

android - 在 Authenticator 中设置 SharedPreference?