A TreeSet is a List. so if you want a comparison, you might want to be a bit more specific, whether you're talking about ArrayLists or LinkedLists.

Anyway, the implementation of the TreeSet provides a guaranteed log(n) time cost for the basic operations (add, remove and contains). Whilst the ArrayList would cost 1 for those operations (Unless array size was insufficient).

The Collections.sort uses the QuickSort algorithm which has the O(n log(n))

To wrap it all up, if you want your Items sorted all the time use the TreeSet. But if you only need the results sorted once, you might want to consider either an ArrayList or a LinkedList.

The LinkedList comes in handy if you have no idea what is the number of Items in your list. Because the ArrayList initializes an array for your data, and when full, initializes a new one and copies the old 1 inside it.. So it might be time wasting