Как получить текущий индекс цикла при использовании Iterator? - PullRequest
88 голосов
/ 25 июля 2010

Я использую итератор для перебора коллекции и я хочу получить индекс текущего элемента.

Как я могу это сделать?

Ответы [ 11 ]

0 голосов
/ 08 апреля 2013

Все, что вам нужно, это использовать iterator.nextIndex () для возврата текущего индекса, в котором находится итератор.Это может быть немного проще, чем использование вашей собственной переменной counter (которая все еще работает).

public static void main(String[] args) {    
    String[] str1 = {"list item 1", "list item 2", "list item 3", "list item 4"};
    List<String> list1 = new ArrayList<String>(Arrays.asList(str1));

    ListIterator<String> it = list1.listIterator();

    int x = 0;

    //The iterator.nextIndex() will return the index for you.
    while(it.hasNext()){
        int i = it.nextIndex();
        System.out.println(it.next() + " is at index" + i); 
    }
}

Этот код будет проходить по списку list1 по одному элементу за раз и печатать текст элемента, а затем "isat index ", то он напечатает индекс, в котором его нашел итератор.:)

...