0

セットを空 (null ではない) に初期化したいのですが、誰か助けてもらえますか? これが私のコードです

public class Graph {
private Set<Vertex> vertices;

public Graph() {
    vertices = {};
}

これが間違った方法であることはわかっていますが、他に何もできませんでした

4

4 に答える 4

4

セットはインターフェースです。必要な実装を決定してから、引数なしのコンストラクターを使用して構築する必要があります。例えば

vertices = new HashSet<Vertex>();

また

vertices = new TreeSet<Vertext>();

vsの詳細については、この SO の質問/回答を参照してください。これがインターフェイスであることを考えると、任意の数の実装が存在する可能性があります (独自のものを作成することもできます) が、最初はこれら 2 つのうちの 1 つが必要になると思います。TreeSetHashSetSet

于 2013-02-25T13:40:24.927 に答える
1

交換

vertices = {};

vertices = new HashSet<Vertex>();

HashSetこれにより、Setインターフェイスの空が初期化されます

于 2013-02-25T13:40:52.423 に答える
1

コンストラクターを実行する必要があります。

public Graph() {
  vertices = new HashSet<>();
}

Setはインターフェイス定義であるため、具体的な実装を選択する必要がありますSetHashSetはそのような実装の 1 つですが、TreeSet別の実装です (TreeSet実際には a の実装ですSortedSet)。

于 2013-02-25T13:40:14.327 に答える
1
public Graph(){  
  vertices = new HashSet<Vertex>();  
} 

また

public Graph(){  
  vertices = new TreeSet<Vertex>();  
}
于 2013-02-25T13:40:15.353 に答える