Ako previesť kolekciu na zoznam?

Používam TreeBidiMap z knižnice Apache Collections. Chcem to zoradiť podľa hodnôt, ktoré sú dvojité.

Moja metóda spočíva v načítaní Kolekcie hodnôt pomocou:

Collection coll = themap.values();

Čo samozrejme funguje dobre.

Hlavná otázka: Teraz by som chcel vedieť, ako môžem konvertovať/previesť (neviem, čo je správne) coll na List, aby sa dalo triediť?

Potom mám v úmysle iterovať nad zoradeným objektom List, ktorý by mal byť zoradený a získať príslušné kľúče z TreeBidiMap (themap) pomocou themap.getKey(iterator.next()), kde iterátor bude nad zoznamom dvojíc.

Riešenie
List list = new ArrayList(coll);
Collections.sort(list);

Ako hovorí Erel Segal Halevi nižšie, ak je coll už zoznam, môžete prvý krok preskočiť. Ale to by záviselo od vnútorných vlastností TreeBidiMap.

List list;
if (coll instanceof List)
  list = (List)coll;
else
  list = new ArrayList(coll);
Komentáre (3)

Niečo také by malo fungovať, keď sa zavolá konštruktor ArrayList, ktorý preberá Collection:

List theList = new ArrayList(coll);
Komentáre (3)
Collections.sort( new ArrayList( coll ) );
Komentáre (2)