Ankur Ankur - 4 months ago 18
Java Question

Convert Collection to List

I am using

TreeBidiMap
from the
Apache Collections
library. I want to sort this on the values which are
doubles
.

My method is to retrieve a
Collection
of the values using:

Collection coll = themap.values();


Which naturally works fine.

Main Question: I now want to know how I can convert/cast (not sure which is correct)
coll
into a
List
so it can be sorted?

I then intend to iterate over the sorted
List
object, which should be in order and get the appropriate keys from the
TreeBidiMap
(
themap
) using
themap.getKey(iterator.next())
where the iterator will be over the list of
doubles
.

Answer
List list = new ArrayList(coll);
Collections.sort(list);

As Erel Segal Halevi says below, if coll is already a list, you can skip step one. But that would depend on the internals of TreeBidiMap.

List list;
if (coll instanceof List)
  list = (List)coll;
else
  list = new ArrayList(coll);
Comments