如何将字段设置为键并对类进行排序

时间:2013-08-03 18:51:04

标签: java list sorting collections map

class People {
  int height;
  int weight;
}

List<People> list = new ArrayList<People> ();

我想用字段'height'作为关键字对列表进行排序。

我可以使用任何预定义的方法吗?如何将高度设置为我的键?

3 个答案:

答案 0 :(得分:1)

创建一个Comparator,它接受​​一个键并按该字段对其进行排序

另见

答案 1 :(得分:0)

你可以让你的类实现Comparable<People>,它创建了所谓的自然顺序,但是人们总是“更多”或“更少”基于它似乎并不直观高度。更好的方法可能是创建Comparator,然后您可以使用Collections.sort对列表进行排序。

(作为一个注释:在Java中,类名称是该类所代表的单数,因此在您的情况下,将其命名为Person会更加清晰。)

答案 2 :(得分:0)

- 为了将某些对象放入特定的顺序,通常建议使用Set from Java Collection Framework。而且你有2个选项: 在同一个类Comparable中实现并覆盖方法compareTohttp://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);