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

How to create TreeSet using an existing HashSet with data in it?

我正在尝试使用其中包含数据的现有 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());

我怎样才能做到这一点?

您可以分两步完成:

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