Java Jung 2.01 グラフ パッケージを使用して、グラフ理論の分析を行っています。私のアルゴリズムは を取り、Forest<V, E>
それから にキャストできるDelegateForest<V,E>
ので、このメソッドを使用しgetTrees()
てフォレストのコンポーネントのインスタンスを取得できます。私のアルゴリズムは再帰的で、getTrees()
メソッドの各コンポーネントで実行されます。
したがって、問題はgetTrees()
のコレクションである戻り値の型です(およびある時点で にキャストする)Tree<V, E>
アルゴリズムを使用し、フォレストの各ツリー コンポーネントでアルゴリズムを実行したいので、実行できないことを示す ClassCastException を取得します。から に変換します。Forest<V, E>
DelegateForest<V, E>
DelegateTree<V, E>
DelegateForest<V, E>
これが私のコードの一部です:ArrayList<Forest<String, Integer>> treeComps = new ArrayList<Forest<String, Integer>>(forest.getTrees());
この最初の行は、フォレストのツリー コンポーネントを ArrayList に格納するだけです。
((DelegateForest)forest).removeVertex(vertexCentralities.first().getKey(), false);
このキャストは、ツリー内の頂点を削除し、その頂点のサブツリーを保持するアルゴリズムからのものです。これがキャストが必要な理由ですDelegateForest<V, E>
- 後で問題なく
Forest<V,E>
処理できるように、ツリーがタイプになるようにフォレストからツリーを抽出するにはどうすればよいですか?DelegateForest<V, E>
- ソースコードを変更する必要がありますか?
- 他のアイデアはありますか?