2012-02-17 2 views
18

У меня есть TreeSet, который содержит> 100k объектов. У меня есть другой метод, который требует ArrayList в качестве параметра.Преобразование TreeSet в ArrayList?

Есть ли способ, которым я могу выполнить это без итерации всего TreeSet, а затем добавить каждый объект вручную в ArrayList?

+0

Можно расслабиться сигнатуру метода, чтобы получить простой набор? Таким образом, копирование не требуется. –

ответ

43

Как об этом:

new ArrayList<T>(set); 
+3

Это лучшее, что вы собираетесь получить. Нет решения, которое не требует линейного времени. –

3

ArrayList имеет удобный метод addAll, который соответствует законопроект красиво:

final Set<Object> set = ... 
List<Object> list = new ArrayList<Object>(someBigNum); 
list.addAll(set); 
+4

несколькоBigNum может быть установлен.size() –

+1

someBigNum очень вводит в заблуждение здесь ... Вам не нужно большое число. Вам просто нужно set.size(), поскольку kuldeep указал –

Смежные вопросы