2016-08-05 8 views
1

既存のHashSetを使用してTreeSetを作成しようとしています。 しかし、私は外部コンパレータに渡すことができるオーバーロードされたメソッドを見つけることができませんでしたか?既存のHashSetを使用して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

次の2つのステップでそれを行うことができます。

あなたがソースコードを見れば、他のコンストラクタが何をしているか、すべての後です
Set<Bus> treeObject = new TreeSet<>(new BusComparator()); 
treeObject.addAll(m); 
+1

: 'パブリックTreeSetの(コレクション C){この(); addAll(c); } ' – Andreas

関連する問題