【发布时间】:2019-01-13 19:11:16
【问题描述】:
假设我在 ArrayList 中有一个具有属性 name(String) 和 age(int) 的 Pet 类,我想在不使用 Collections Framework 的情况下对它们进行排序,所以我使用 TreeSet 来解析 ArrayList。我的问题是,是否存在一种在 TreeSet 的构造函数中初始化新比较器的方法(与 ArrayList 一起),还是我必须在宠物类中实现一个新的比较器/可比较器?
已经通过在 Pet 类中实现 Comparable 来尝试它并且它有效,但我想知道是否有使用 TreeSet 构造函数的更短的方法。
ArrayList<Pet> myPets = new ArrayList<>();
// TreeSet to compare names
TreeSet<Pet> sortedPets = new TreeSet(myPets, new Comparator<Pet>() {
public int compare(Pet p1, Pet p2) {
return p1.getName().compareTo(p2.getName());
}
});
【问题讨论】:
标签: java comparator treeset