package com.lovecoding.day19.list01;

import org.junit.Test;

import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;

public class TestListIterator {

   /*
    `boolean``hasNext()`如果此列表迭代器在向前遍历列表时具有更多元素，则返回 `true` 。
    `E``next()`返回列表中的下一个元素并前进光标位置。
    `int``nextIndex()`返回后续调用 [`next()`](#next())将返回的元素的索引。
    `void``set(E e)`用指定的元素替换 [`next()`](#next())或 [`previous()`](#previous())返回的最后一个元素（可选操作）。
    */

    @Test
    public void test01(){
        List<Integer> list = new ArrayList<>(List.of(1, 2, 3, 4, 5));

        //获取迭代器
        ListIterator<Integer> listIterator = list.listIterator();

        //boolean``hasNext()`如果此列表迭代器在向前遍历列表时具有更多元素，则返回 `true` 。
        while (listIterator.hasNext()){
            int i1 = listIterator.nextIndex();
            System.out.println(i1);
            //E``next()`返回列表中的下一个元素并前进光标位置。
            Integer next = listIterator.next();

            System.out.println("值："+ next);
            //nextIndex
            int i2 = listIterator.nextIndex();
            System.out.println(i2);

            //set
            if (next==2){
                listIterator.set(11);
            }

        }

        System.out.println(list);
    }
}
