java - 按对象的属性按数字顺序对数组进行排序

标签 java arrays sorting

我正在努力按照对象属性的顺序对数组进行排序。我知道如何按顺序对数字进行排序,但我不知道如何对对象进行排序。例如,假设对象 A 的位置属性为 1,对象 B 的位置属性为 2。这些对象位于一个数组中。我怎样才能根据这个属性对它们进行排序?

谢谢

最佳答案

你有这样的东西:

public class ExampleObject {
    public int position;
}

然后,只需使用比较器即可。

public static void main(String args[]) {
    //example numbers
    final Random r = new Random();
    final List<ExampleObject> arrList = new ArrayList<>(100);
    for (int i = 0; i < 100; i++) {
        ExampleObject obj = new ExampleObject();
        obj.position = r.nextInt(1000);
        arrList.add(obj);
    }

    //comparator (as a lambda)
    Collections.sort(arrList, (a, b) -> {
        return a.position - b.position;
    });

    //output result
    for (ExampleObject obj : arrList) {
        System.out.println(obj.position);
    }
}

此外,如果您必须对数组而不是 List 进行排序,您可以将 Arrays.sort()Comparator 一起使用,例如这也是。

关于java - 按对象的属性按数字顺序对数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34080230/

相关文章:

java - 如何连接mp4文件?

php - 在 CodeIgniter 的 Hook 中获取 session 数据

javascript - 将字符串转换为脊椎大写

c - 用指针编译c代码时出现段错误

algorithm - 维基百科上的排序算法插图?

Java JTextfield 只给我空数据

java - <ui :debug/> tag not working in Facelets (JSF 2. 0)

algorithm - 迭代排序算法的运行时间分析

java - Spring Java 中的模板类是什么?为什么它们被称为模板?例如 jdbc-template、jms-template 等

php - 按最受欢迎的产品进行排序,保持相关性紧密