我有一个点对象列表,我想按某个坐标排序,比如说x值。 Java是否提供了任何有用的机制,还是应该利用其中一种常见的排序算法?用Java对点列表排序
3
A
回答
13
是创建一个自定义Comparator
,并用它来进行排序点的列表
class Point{
private int x;
private int y;
public int getX() {
return x;
}
public void setX(int x) {
this.x = x;
}
public int getY() {
return y;
}
public void setY(int y) {
this.y = y;
}
public Point(int x, int y) {
this.x = x;
this.y = y;
}
public Point() {
}
}
List<Point> points = new ArrayList<Point>();
points.add(new Point(1, 2));
points.add(new Point(60, 50));
points.add(new Point(50, 3));
Collections.sort(points,new Comparator<Point>() {
public int compare(Point o1, Point o2) {
return Integer.compare(o1.getX(), o2.getX());
}
});
5
在Point
类,你应该实现Comparable接口泛型类型<Point>
和使用Collections.sort
(java.util中包)用于分类List<Point>
假设:
class Point implements Comparable<Point>{
int compareTo(Point other){ /* your logic */}
}
List<Point> list = new ArrayList<Point>();
/* adding points */
Collections.sort(list);
1
您应该让您的Point类实现Comparable接口或使用您自己的Comparator对象提供sort()方法,该对象告诉sort()如何排序对象。这里有很多例子。
1
您可以使用类似于Bean Comparator的东西,因此您不必一直创建自定义比较器。
相关问题
- 1. Java排序对象的阵列列表
- 2. Java:排序对象队列
- 3. 用Java排序的点数阵列
- 4. 对列表对象排序列表
- 5. 在Java中对列表列表进行排序
- 6. 按java中子列表中的属性对列表排序
- 7. 使用选择排序根据玩家点数对列表进行排序?
- 8. 排序对象列表
- 9. 排序对象列表
- 10. Java(Android)重新排列对象列表
- 11. Java的Android排序列表中的java对象
- 12. 如何使用C#对2D点列表进行排序?
- 13. 组然后使用java比较器对列表进行排序
- 14. 如何使用java 8中的reduce对列表进行排序?
- 15. 在Java中使用stream.sorted()对列表进行排序
- 16. 使用java中的lambdas对字符列表进行排序
- 17. java - 使用集合对员工姓名列表进行排序
- 18. 使用2个标准对Java进行列表排序
- 19. 如何使用对象属性列表排序对象列表
- 20. Java小程序排序列表
- 21. 使用OrderBy对列表进行排序
- 22. 使用Linq排序Person对象列表
- 23. 用javascript对html列表排序
- 24. 使用双类型排序对象的阵列列表的排列列表
- 25. 排序列表的对象,使用排序()算法c + +
- 26. 使用冒泡排序对列表进行排序
- 27. Django:对对象列表排序
- 28. 对象列表降序排列
- 29. 按多列对C++列表排序
- 30. 按多列对C#列表排序
简直超级。非常感谢。 – Abdul 2015-09-03 06:04:18