Home | 简体中文 | 繁体中文 | 杂文 | Github | 知乎专栏 | Facebook | Linkedin | Youtube | 打赏(Donations) | About
知乎专栏

8.8. ListIterator

ListIterator 可以实现添加/删除和向前/向后访问数据

Iterator 可以用于 List / Set / Vector / Map 数据结构,ListIterator 只能用于 List

		
package cn.netkiller.test;

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

public class Test {

    public static void main(String[] args) {
        Test test = new Test();
        List<String> arrayList = new ArrayList<String>();
        List<String> linkedList = new LinkedList<String>();

        linkedList.add("Neo");
        linkedList.add("Tom");
        linkedList.add("Jerry");
        ListIterator<String> listIterator = linkedList.listIterator();
        String first = listIterator.next();

        System.out.printf("%s List<String> %s\n", "=".repeat(10), "=".repeat(10));
        System.out.println("first:" + first);

        listIterator.remove();

        System.out.printf("%s forEachRemaining %s\n", "=".repeat(10), "=".repeat(10));
        listIterator.add("Netkiller");
        listIterator.forEachRemaining(System.out::println);

        arrayList.add("Netkiller Linux 手札");
        arrayList.add("Netkiller Java 手札");
        arrayList.add("Netkiller Sprint 手札");

        listIterator = arrayList.listIterator();
        System.out.printf("%s next() %s\n", "=".repeat(10), "=".repeat(10));
        while (listIterator.hasNext()) {
            System.out.println(listIterator.next());
        }

        listIterator.add("Netkiller MySQL 手札");

        System.out.printf("%s previous() %s\n", "=".repeat(10), "=".repeat(10));
        while (listIterator.hasPrevious()) {
            System.out.println(listIterator.previous());
        }
    }
}		
		
		
		
String next = listIterator.next();
if( "Neo".equals(next)) {
    listIterator.set("Netkiller");
}		
		
		
		
List<String> items = new ArrayList<String>();
String nextWithIndex = items.get(listIterator.nextIndex());
String previousWithIndex = items.get(listIterator.previousIndex());