List with Comparable Vs TreeSet
collections, comparable, java, listiterator
Solution
The most important differences:
Criterion | List with Collections.sort | TreeSet
----------------+----------------------------+---------
cost of adding | O(n log n) | O(log n)
equal sort keys | permitted | eliminated as duplicates
iteration | bidirectional, can insert | unidirectional, can not insert
To insert an element when iterating without getting a `ConcurrentModificationException`, you can do:
for (E e : new ArrayList<E>(collection)) {
// some other code
collection.add(anotherE);
}
Problem
Option 1: Make a list which implements Comparable and sort it using collections.sort(List l) every time you add a value. Option 2: Make a TreeSet (which keeps itself sorted all the time). Which one will be faster? I am asking this because List gives me the option of ListIterator which I need in my case, since it lets me add an element while iterating.