Collections.sort использует модифицированную сортировку слиянием с nlog (n) временем сортировки. Если вы вызываете метод при каждом добавлении, вы можете получить n ^ 2log (n) время. Принимая во внимание, что вставка в TreeSet гарантируется log (n). Поэтому, если вы вызываете его при каждом добавлении, оно становится n.log (n) . Поэтому я бы предложил вместо этого использовать TreeSet. Но TreeSet не допускает дублирования, так что это может повлиять на ваше решение.
Если вы используете List, то вместо использования Collections.sort вы можете оптимизировать одну вещь; как вы знаете, каждый раз, когда вы вставляете элемент в список, список уже отсортирован, поэтому использование сортировки вставкой здесь даст вам лучшую производительность, поскольку сортировка вставкой работает лучше в таких случаях.