Подтвердить что ты не робот

Коллекция для Iterable

Как я могу получить java.lang.Iterable из коллекции, например, Set или List? Спасибо!

4b9b3361

Ответ 1

Коллекция - Итерабельная... Итак, вы можете написать:

public static void main(String args[]) {
    List<String> list = new ArrayList<String>();
    list.add("a string");

    Iterable<String> iterable = list;
    for (String s : iterable) {
        System.out.println(s);
    }
}

Ответ 2

Мне непонятно, что вам нужно, так:

это дает вам Iterator

SortedSet<String> sortedSet = new TreeSet<String>();
Iterator<String> iterator = sortedSet.iterator();

Наборы и списки являются Iterables, поэтому вы можете сделать следующее:

SortedSet<String> sortedSet = new TreeSet<String>();
Iterable<String> iterable = (Iterable<String>)sortedSet;

Ответ 3

Iterable - супер интерфейс к Collection, поэтому любой класс (например, Set или List), который реализует Collection, также реализует Iterable.

Ответ 4

Возможно, javadoc поможет вам.

Ответ 5

java.util.Collection extends java.lang.Iterable, вам ничего не нужно делать, это уже Iterable.

groovy:000> mylist = [1,2,3]
===> [1, 2, 3]
groovy:000> mylist.class
===> class java.util.ArrayList
groovy:000> mylist instanceof Iterable
===> true
groovy:000> def doStuffWithIterable(Iterable i) {
groovy:001>   def iterator = i.iterator()
groovy:002>   while (iterator.hasNext()) {
groovy:003>     println iterator.next()
groovy:004>   }
groovy:005> }
===> true
groovy:000> doStuffWithIterable(mylist)
1
2
3
===> null

Ответ 6

Оба Set и List интерфейсы расширьте интерфейс Collection, который сам расширяет Iterable.