class People {
int height;
int weight;
}
List<People> list = new ArrayList<People> ();
我想用字段'height'作为关键字对列表进行排序。
我可以使用任何预定义的方法吗?如何将高度设置为我的键?
答案 0 :(得分:1)
答案 1 :(得分:0)
你可以让你的类实现Comparable<People>
,它创建了所谓的自然顺序,但是人们总是“更多”或“更少”基于它似乎并不直观高度。更好的方法可能是创建Comparator
,然后您可以使用Collections.sort
对列表进行排序。
(作为一个注释:在Java中,类名称是该类所代表的单数,因此在您的情况下,将其命名为Person
会更加清晰。)
答案 2 :(得分:0)
- 为了将某些对象放入特定的顺序,通常建议使用Set from Java Collection Framework。而且你有2个选项:
在同一个类Comparable
中实现并覆盖方法compareTo
。
http://docs.oracle.com/javase/7/docs/api/java/lang/Comparable.html
在新类中实现接口Comparator
并覆盖compare
方法。
http://docs.oracle.com/javase/7/docs/api/java/util/Comparator.html
在您使用列表的情况下,您仍然可以执行这些操作,而不是从.sort()
调用方法Collections
。
class HightSort implements Comparator<People > {
public int compare(People one, People two) {
return one.hight-two.hight;
}
}
Collections.sort(list);