我有一个包含> 100k对象的TreeSet。 我有另一个需要ArrayList作为参数的方法。将TreeSet转换为ArrayList?
有没有什么办法可以在不迭代整个TreeSet的情况下完成此任务,然后将每个对象手动添加到ArrayList中?
我有一个包含> 100k对象的TreeSet。 我有另一个需要ArrayList作为参数的方法。将TreeSet转换为ArrayList?
有没有什么办法可以在不迭代整个TreeSet的情况下完成此任务,然后将每个对象手动添加到ArrayList中?
如何:
new ArrayList<T>(set);
这是最好的你会得到。没有不需要线性时间的解决方案。 – 2012-02-17 07:01:09
ArrayList中有很好的符合该法案的便捷方法addAll
:
final Set<Object> set = ...
List<Object> list = new ArrayList<Object>(someBigNum);
list.addAll(set);
someBigNum可能是set.size() – 2012-02-17 04:21:12
someBigNum在这里很具误导性......你不需要大数字。你只需要set.size(),因为kuldeep指出 – 2014-05-18 03:29:46
是否有可能放松的方法签名接受一个单纯的收藏?这样不需要复制。 – 2012-02-17 05:11:50