Java 将树集转换为ArrayList?
我有一个树集,其中包含超过100k个对象。 我有另一个方法需要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
是否有任何方法可以在不迭代整个树集然后手动将每个对象添加到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
List<String> list = new ArrayList<String>(trreset);
List List=newarraylist(trreset);
ArrayList<String> arrayList = new ArrayList<String>();
arrayList.addAll(treeSet);
ArrayList ArrayList=new ArrayList();
arrayList.addAll(treeSet);
可以设置someBigNum.size()someBigNum在这里非常容易引起误解。。。您不需要一个大的num,只需要set.size(),正如kuldeep指出的那样,可以放松方法签名来接收一个简单的集合吗?这样就不需要复制了。这是你能得到的最好的。没有不需要线性时间的解决方案。
ArrayList<String> arrayList = new ArrayList<String>();
arrayList.addAll(treeSet);