2

Set<Set<String>>Javaでは、aからaに変換してから、List<List<String>>このリストにの内容を入力するのに問題があります。Set<Set<String>>

これが私のコードです:

Set<Set<String>> treeComps = compExtractor.transform(forest); // fine
List<List<String>> components = new List<List<String>>();     // does not work
components.addAll(treeComps);                                 // does not work
4

4 に答える 4

6

Listインターフェースのインスタンスをインスタンス化することはできません。ArrayListのような実装の1つを使用する必要があります。次に、treeCompsで外部セットを反復処理し、内部セットごとに新しいArrayListを作成し、このArrayListでaddAllを呼び出してから、リストをコンポーネントに追加します。

List<List<String>> components = new ArrayList<List<String>>();
for( Set<String> s : treeComps )
{
  List<String> inner = new ArrayList<String>();
  inner.addAll( s );
  components.add( inner );
}
于 2012-10-19T19:41:04.940 に答える
2

私は唯一の方法は外側のセットを繰り返すことだと思います。内部セットとユーザーを取得するnew ArrayList<String>(innerSet)

上記の結果リストを外部リストに追加します。

于 2012-10-19T19:37:29.950 に答える
1

このようなもの...

Set<Set<String>> treeComps = compExtractor.transform(forest);
List<List<String>> lists = new ArrayList<List<String>>();
for (Set<String> singleSet : treeComps) {
    List<String> singleList = new ArrayList<String>();
    singleList.addAll(singleSet);
    lists.add(singleList);
}
于 2012-10-19T19:42:00.107 に答える
0
List<List<String>> components = new Vector<List<String>>();
List<String> n;
for( Set<String> s : trerComps ) {
   n = new Vector<String>();
   n.addAll( s );
   components.add( n);
}
于 2012-10-19T19:41:59.403 に答える