有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java将Set<Set<String>>转换为List<List<String>>

在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

共 (4) 个答案

  1. # 1 楼答案

    我认为唯一的方法是在外部集合上迭代。获取内部集合和用户new ArrayList<String>(innerSet)

    将以上结果列表添加到outerlist

  2. # 2 楼答案

    不能实例化List接口的实例,需要使用ArrayList等实现之一。然后可以在树组件中迭代外部集合,为每个内部集合创建一个新的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 );
    }
    
  3. # 3 楼答案

    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);
    }
    
  4. # 4 楼答案

    像这样的

    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);
    }