Предположим, приложение продуцирующие ряд HashMap<String, MyClass>
структур данных, каждый из которых содержит от десятков до сотен Comparable
объектов типа MyClass
, которые должны в конечном итоге в один и отсортированных Collection
.SortedSet или сортируется Коллекция
Два возможных реализаций этой функции возвращают SortedSet или отсортированный список, следующим образом:
public static Set<MyClass> getSortedSet(HashMap<String, MyClass>... allMaps)
{
SortedSet<MyClass> set = new TreeSet<MyClass>();
Collection<MyClass> c;
for (HashMap<String, MyClass> map:allMaps)
{
c = map.values();
set.addAll(c);
}
return set;
}
public static List<MyClass> getSortedList(HashMap<String, MyClass>... allMaps)
{
List<MyClass> list = new ArrayList<MyClass>();
Collection<MyClass> c;
for (HashMap<String, MyClass> map:allMaps)
{
c = map.values();
list.addAll(c);
}
Collections.sort(list);
return list;
}
Будет ли какой-либо явное преимущество в производительности для любого из вышеуказанных 2 методов?
Есть ли более быстрый способ реализации одной и той же функциональности?
Если вам интересно, что быстрее, почему бы не измерить их по фактическим данным? – NPE
Потому что кто-то еще собирается использовать этот код! Все, о чем я прошу, заключается в том, есть ли серьезная причина для того, чтобы одна реализация или другая была быстрее! – PNS
Вы все еще можете выполнить нагрузочный тест, чтобы узнать лучшую производительность ... –