0

'Vertex3<T>'のインスタンスを含むセットを作成しようとしています。セットを作成する行に少し問題があります。

public Set<Vertex3<Integer>> verticies = new Set<Vertex3<Integer>>();

Eclipseは、等号の右側の「Set」部分に赤で下線を引き、「タイプSet <Vertex3<Integer>>をインスタンス化できません」というエラーメッセージを表示します。

'Vertex3<T>'は次のように定義されます。

public class Vertex3 <T> {
    public T x;
    public T y;
    public T z;

    public Vertex3() {
        // do nothing
    }

    public Vertex3(T x, T y, T z) {
        this.x = x;
        this.y = y;
        this.z = z;
    }

    public Vertex3(T x, T y) {
        this.x = x;
        this.y = y;
    }
}

提供できるどんな助けもありがたいです。

4

3 に答える 3

1

Setはインターフェースであるため、インスタンス化できません。HashSet(またはTreeSet、またはLinkedHashSet)のような具体的なTypeをインスタンス化する必要があります。

public Set<Vertex3<Integer>> verticies = new HashSet<Vertex3<Integer>>();

HashSetとLinkedHashSetは一意の値を格納します...HashSetのパフォーマンスはLinkedHashSetよりも優れているため、おそらくHashSetを使用することをお勧めします。

于 2012-06-19T19:54:45.783 に答える
0

Setは、javadocが提案するインターフェースです:http://docs.oracle.com/javase/6/docs/api/java/util/Set.html、したがって、インスタンス化することはできません

を見て、All Known Implementing Classes自分に最も適した実装を選択し、を使用してインスタンス化する必要がありますnew

于 2012-06-19T19:54:43.473 に答える
0

セットはインターフェースです。インスタンス化することはできません。右側のパーツをHashSetまたはTreeSetに置き換えます。

于 2012-06-19T19:55:05.647 に答える