在Java中,我无法从Set<Set<String>>
转换为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
答案 0 :(得分:6)
您无法实例化List接口的实例,您需要使用其中一个类似ArrayList的实现。然后你可以遍历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 );
}
答案 1 :(得分:2)
我认为唯一的方法是迭代外集。获取内部集和用户new ArrayList<String>(innerSet)
将上述结果列表添加到外部列表。
答案 2 :(得分: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);
}
答案 3 :(得分: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);
}