Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将树集转换为ArrayList?_Java_Arraylist_Treeset - Fatal编程技术网

Java 将树集转换为ArrayList?

Java 将树集转换为ArrayList?,java,arraylist,treeset,Java,Arraylist,Treeset,我有一个树集,其中包含超过100k个对象。 我有另一个方法需要ArrayList作为参数 是否有任何方法可以在不迭代整个树集然后手动将每个对象添加到ArrayList的情况下完成此操作?ArrayList有一个方便的方法addAll,非常适合: final Set<Object> set = ... List<Object> list = new ArrayList<Object>(someBigNum); list.addAll(set); final S

我有一个树集,其中包含超过100k个对象。 我有另一个方法需要ArrayList作为参数


是否有任何方法可以在不迭代整个树集然后手动将每个对象添加到ArrayList的情况下完成此操作?

ArrayList有一个方便的方法
addAll
,非常适合:

final Set<Object> set = ...
List<Object> list = new ArrayList<Object>(someBigNum);
list.addAll(set);
final Set=。。。
List List=newarraylist(someBigNum);
列表。添加全部(集合);
这个怎么样:

new ArrayList<T>(set);
newarraylist(set);
对于Java 7和更高版本,这可以简化,因为类型参数
可以替换为菱形类型

newarraylist(set);
如果您使用的是高盛公司开发的具有超强功能的toList():

MutableSortedSet set=sortedset.mutable.empty();
...
返回set.toList();
也可以提供比较器:

MutableSortedSet set=sortedset.mutable.of(比较器);
...
返回set.toList();

我们可以使用以下几种方法将TreeSet转换为ArrayList

  • 使用ArrayList构造函数 在此方法中,我们将在ArrayList构造函数中将TreeSet作为参数传递

    List<String> list = new ArrayList<String>(trreset);
    
    List List=newarraylist(trreset);
    
  • 请阅读参考资料以了解更多详细信息

  • 使用AddAll()方法 这样,我们将使用addAll()方法将TreeSet添加到ArrayList中,如下所示

    ArrayList<String> arrayList = new ArrayList<String>();
    arrayList.addAll(treeSet);
    
    ArrayList ArrayList=new ArrayList();
    arrayList.addAll(treeSet);
    
  • 迭代树集并逐个将元素添加到ArrayList中


  • 可以设置someBigNum.size()someBigNum在这里非常容易引起误解。。。您不需要一个大的num,只需要set.size(),正如kuldeep指出的那样,可以放松方法签名来接收一个简单的集合吗?这样就不需要复制了。这是你能得到的最好的。没有不需要线性时间的解决方案。
    ArrayList<String> arrayList = new ArrayList<String>();
    arrayList.addAll(treeSet);