Вам нужно, чтобы он всегда сортировался? Если это так, вы можете использовать что-то вроде набора деревьев (или другого SortedSet с быстрым поиском).
Если вам нужно только отсортировать время от времени, используйте связанный список и сортируйте его, когда вам нужен доступ. Пусть он не будет отсортирован, когда вам не нужен доступ.