1

一連の頂点を反復処理しようとしています。頂点は、私が作成したカスタム クラスです。頂点を反復処理する私の試みは次のとおりです。

bCentral2 = new BetweennessCentrality<MyVertex, MyEdge>(g2);

for(MyVertex v : g2.getVertices())
{
    v.setCentrality(bCentral2.getVertexScore(v));
}

私が得るエラーは行からのものです:MyVertex v : g2.getVertices()そしてメッセージは次のとおりです:

incompatible types
  required: graphvisualization.MyVertex
  found:    java.lang.Object 

だから、にキャストしようとしたArraryList<MyVertex>ところ、次のエラーメッセージが表示されました。

Exception in thread "main" java.lang.ClassCastException: java.util.Collections$UnmodifiableCollection cannot be cast to java.util.ArrayList
  1. 一連の頂点を反復処理するにはどうすればよいですか?
  2. 最終的な目標は、各頂点の中心性を設定することです

以下は、MyVertex クラスの私のコードです。

public class MyVertex 
{
    int vID;                    //id for this vertex
    double centrality;          //centrality measure for this vertex

    public MyVertex(int id)
    {
        this.vID = id;
        this.centrality=0;
    }

    public double getCentrality()
    {
        return this.centrality;
    }

    public void setCentrality(double centrality)
    {
        this.centrality = centrality;
    }

    public String toString()
    {
        return "v"+vID;
    }
}
4

1 に答える 1

1

私はg2.getVertices()コレクションを返すと推測しています。Collectionしたがって、次のように変換できますArrayList

ArrayList<MyVertex> ll = new ArrayList<>(g2.getVertices())

ここにドキュメントがあります

于 2012-12-31T06:08:36.680 に答える