Коллекция в Iterable - PullRequest
       4

Коллекция в Iterable

29 голосов
/ 16 марта 2012

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

Ответы [ 6 ]

56 голосов
/ 16 марта 2012

Коллекция является итерируемой ... Таким образом, вы можете написать:

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);
    }
}
7 голосов
/ 16 марта 2012

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

это дает вам итератор

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

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

SortedSet<String> sortedSet = new TreeSet<String>();
Iterable<String> iterable = (Iterable<String>)sortedSet;
5 голосов
/ 16 марта 2012

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

2 голосов
/ 16 марта 2012

Может быть, javadoc поможет вам.

1 голос
/ 16 марта 2012

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

1 голос
/ 16 марта 2012

java.util.Collection расширяется java.lang.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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...