Sicher, es wird in this Antwort angezeigt. Grundsätzlich iterieren die iterable und dessen Inhalt in einer Sammlung kopieren:
public static <T> List<T> copyIterable(Iterable<T> iterable) {
Iterator<T> iter = iterable.iterator();
List<T> copy = new ArrayList<T>();
while (iter.hasNext())
copy.add(iter.next());
return copy;
}
es wie folgt verwenden, ist das resultierende List
Objekt kann als Parameter an den HashSet
Konstruktor übergeben werden.
Iterable<Integer> list = Arrays.asList(1, 2, 3);
List<Integer> copy = copyIterable(list);
Set<Integer> aSet = new HashSet<Integer>(copy);
EDIT
ich die ganze Zeit geirrt habe. Iterable
ist ein Superinterface von Collection
, so dass ein einfacher (aber unsicherer) Cast den Trick machen wird, solange der Iterable
ein Collection
war, um damit zu beginnen.
Gute Erklärung. Ich denke, ich verstehe deinen Standpunkt und deine Intuition. – VaidAbhishek