如何使用包含数据的现有HashSet创建TreeSet?

时间:2016-08-05 07:01:00

标签: java collections comparator hashset comparable

我正在尝试使用包含数据的现有HashSet创建TreeSet。 但我找不到一个可以传递外部比较器的重载方法?

创建TreeSet时是否可以使用外部比较器?

public static void main(String[] args) {

        Set<Bus> m = new HashSet<>();
        Bus b1 = new Bus(1, "bhl", "udr");
        Bus b2 = new Bus(2, "ahmd", "mum");         
        m.add(b1);
        m.add(b2);
        //Below will create treeset using default comparable logic.
        Set<Bus> treeObject = new TreeSet<>(m);

        // There is no overloaded constructor like this.
        Set<Bus> treeObject = new TreeSet<>(m, new BusComparator());

我怎么能做到这一点?

1 个答案:

答案 0 :(得分:1)

您可以分两步完成:

Set<Bus> treeObject = new TreeSet<>(new BusComparator());
treeObject.addAll(m);