我的 Person
类有一个唯一的整数 ID,我将其用作 TreeMap
的键值.但是,person 类还有另一个属性“age”,它不是每个人唯一的(存在重复项)。我想按允许重复的年龄顺序打印树状图。
我尝试将所有条目放入新的 Treemap
中其中关键是年龄而不是 ID,而是 treemap
会删除重复项,这就是我不想要的。
我在某处读到我应该使用 Treemap<Integer, List<Person>)
其中整数将是年龄,但我不知道如何添加这些元素并打印它们。
注意:Person 确实实现了可比较的和 compareto
方法基于年龄。
请帮忙
最佳答案
您可以从 map 中提取值(Person
对象)的 List
,然后实现自定义(匿名)比较器:
List<Person> list = new ArrayList<Person>(map.values());
Collections.sort(list, new Comparator<Person>() {
public int compare(Person p1, Person p2) {
return p1.getAge().compareTo(p2.getAge());
}
});
因此,列表
将按年龄
排序。
关于java - 我有一个 treemap<Integer, Person> 其中 Integer 是每个人的唯一属性,我想打印按另一个属性排序的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28411127/