Лучше ли использовать TreeSet или ArrayList при использовании пользовательского компаратора

Я реализовал график. Я хочу отсортировать заданное подмножество вершин относительно их степеней. Поэтому я написал собственный компаратор с именемDegreeComparator.

private class DegreeComparator implements Comparator<Integer>
{
    @Override
    public int compare(Integer arg0, Integer arg1) 
    {
        if(adj[arg1].size() == adj[arg0].size()) return arg1 - arg0;
        else return adj[arg1].size() - adj[arg0].size());
    }

}

Итак, что из нижеперечисленного является более эффективным?

С помощьюTreeSet

public Collection<Integer> sort(Collection<Integer> unsorted)
{
    Set<Integer> sorted = new TreeSet<Integer>(new DegreeComparator());
    sorted.addAll(unsorted);
    return sorted;
}

С помощьюArrayList

Collections.sort(unsorted, new DegreeComparator());

Обратите внимание, что второй подход - это не функция, а однострочный код.

Интуитивно я предпочел бы выбрать второй. Но я не уверен, что это более эффективно.

Ответы на вопрос(3)

Ваш ответ на вопрос