Consider the following code:
final Set<String> allPaths = new HashSet<String>();
for (final String path: paths) {
allPaths.add(path);
}
final MyData d = new MyData(new ArrayList<String>(allPaths));
MyData
is some class I should not touch. It should get an ArrayList
as an argument. Before this day, we used that way because we didn't care about the order, that is why we used Set
(so there will not be duplicated). But now, I would like to keep the order of the elements, so after some research, I found out that I can use the data structure LinkedHashSet
in order to do so. So I did:
final LinkedHashSet<String> allPaths = new LinkedHashSet<String>();
for (final String path: paths) {
allPaths .add(path);
}
final MyData d = new MyData(new ArrayList<String>(allPaths));
Problem is, I'm not sure how to convert LinkedHashSet
to ArrayList
. Also, I thought of using ArrayList
instead of LinkedHashSet
so I won't have to convert it, but I'll have to iterate over the array (O(n)
).
What good, clean and effiect way should I use?