Elbette, this cevabında gösterilmiştir. Temelde, iterable içinde yineleme ve koleksiyonunda içeriğini kopyalamak şu şekildedir:
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;
}
kullanın, ortaya çıkan List
nesne HashSet
yapıcı parametre olarak geçirilebilir.
Iterable<Integer> list = Arrays.asList(1, 2, 3);
List<Integer> copy = copyIterable(list);
Set<Integer> aSet = new HashSet<Integer>(copy);
Baştan beri yanılmış ettik
DÜZENLEME. Iterable
, Collection
'un bir süper arabirimidir, bu nedenle Iterable
, başlangıç için Collection
olduğu sürece, basit (ancak güvenli olmayan) bir aldatmaca işlemi gerçekleştirecektir.
Iterable<Integer> list = Arrays.asList(1, 2, 3);
Set<Integer> aSet = new HashSet<Integer>((Collection)list); // it works!
İyi bir açıklama. Bence senin puanını ve sezgisini aldım. – VaidAbhishek