我正在努力按照对象属性的顺序对数组进行排序。我知道如何按顺序对数字进行排序,但我不知道如何对对象进行排序。例如,假设对象 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/