Java : ListIterator 示例

Java 中的 ListIterator (Java SE 23 & JDK 23) 及其示例。
您将找到大多数 ListIterator<E> 方法的代码示例。

注解 :

  • 本文可能使用了翻译软件以方便阅读。 另请查看英文原文

简介

列表迭代器允许程序员沿任一方向遍历列表、在迭代期间修改列表以及获取迭代器在列表中的当前位置。 (机器翻译)

Class diagram

final var list = List.of("aaa", "bbb", "ccc");
System.out.println(list); // [aaa, bbb, ccc]

final var iterator = list.listIterator();

System.out.println("-- next --");
while (iterator.hasNext()) {
    final var value = iterator.next();
    System.out.println(value);
}

// Result
// ↓
//-- next --
//aaa
//bbb
//ccc

System.out.println("-- previous --");
while (iterator.hasPrevious()) {
    final var value = iterator.previous();
    System.out.println(value);
}

// Result
// ↓
//-- previous --
//ccc
//bbb
//aaa

Methods

void add (E e)

将指定元素插入列表(可选操作)。 (机器翻译)

final var list = new ArrayList<String>();
Collections.addAll(list, "aaa", "bbb", "ccc");

System.out.println(list); // [aaa, bbb, ccc]

final var iterator = list.listIterator();
while (iterator.hasNext()) {
    final var value = iterator.next();
    iterator.add(value.toUpperCase());
}

System.out.println(list); // [aaa, AAA, bbb, BBB, ccc, CCC]

boolean hasNext ()

如果此列表迭代器在向前遍历列表时有更多元素,则返回 true。 (机器翻译)

final var list = List.of("aaa", "bbb", "ccc");
System.out.println(list); // [aaa, bbb, ccc]

final var iterator = list.listIterator();

System.out.println("-- next --");
while (iterator.hasNext()) {
    final var index = iterator.nextIndex();
    final var value = iterator.next();
    System.out.printf("index = %d, value = %s%n", index, value);
}

// Result
// ↓
//-- next --
//index = 0, value = aaa
//index = 1, value = bbb
//index = 2, value = ccc

boolean hasPrevious ()

如果此列表迭代器在反向遍历列表时有更多元素,则返回 true。 (机器翻译)

final var list = List.of("aaa", "bbb", "ccc");
System.out.println(list); // [aaa, bbb, ccc]

final var iterator = list.listIterator(list.size());

System.out.println("-- previous --");
while (iterator.hasPrevious()) {
    final var index = iterator.previousIndex();
    final var value = iterator.previous();
    System.out.printf("index = %d, value = %s%n", index, value);
}

// Result
// ↓
//-- previous --
//index = 2, value = ccc
//index = 1, value = bbb
//index = 0, value = aaa

E next ()

返回列表中的下一个元素并前进光标位置。 (机器翻译)

final var list = List.of("aaa", "bbb", "ccc");
System.out.println(list); // [aaa, bbb, ccc]

final var iterator = list.listIterator();

System.out.println("-- next --");
while (iterator.hasNext()) {
    final var index = iterator.nextIndex();
    final var value = iterator.next();
    System.out.printf("index = %d, value = %s%n", index, value);
}

// Result
// ↓
//-- next --
//index = 0, value = aaa
//index = 1, value = bbb
//index = 2, value = ccc

int nextIndex ()

返回后续调用 next() 时返回的元素的索引。 (机器翻译)

final var list = List.of("aaa", "bbb", "ccc");
System.out.println(list); // [aaa, bbb, ccc]

final var iterator = list.listIterator();

System.out.println("-- next --");
while (iterator.hasNext()) {
    final var index = iterator.nextIndex();
    final var value = iterator.next();
    System.out.printf("index = %d, value = %s%n", index, value);
}

// Result
// ↓
//-- next --
//index = 0, value = aaa
//index = 1, value = bbb
//index = 2, value = ccc

E previous ()

返回列表中的前一个元素并将光标位置向后移动。 (机器翻译)

final var list = List.of("aaa", "bbb", "ccc");
System.out.println(list); // [aaa, bbb, ccc]

final var iterator = list.listIterator(list.size());

System.out.println("-- previous --");
while (iterator.hasPrevious()) {
    final var index = iterator.previousIndex();
    final var value = iterator.previous();
    System.out.printf("index = %d, value = %s%n", index, value);
}

// Result
// ↓
//-- previous --
//index = 2, value = ccc
//index = 1, value = bbb
//index = 0, value = aaa

int previousIndex ()

返回后续调用 previous() 时返回的元素的索引。 (机器翻译)

final var list = List.of("aaa", "bbb", "ccc");
System.out.println(list); // [aaa, bbb, ccc]

final var iterator = list.listIterator(list.size());

System.out.println("-- previous --");
while (iterator.hasPrevious()) {
    final var index = iterator.previousIndex();
    final var value = iterator.previous();
    System.out.printf("index = %d, value = %s%n", index, value);
}

// Result
// ↓
//-- previous --
//index = 2, value = ccc
//index = 1, value = bbb
//index = 0, value = aaa

void remove ()

从列表中删除由 next() 或 previous() 返回的最后一个元素(可选操作)。 (机器翻译)

final var list = new ArrayList<Integer>();
Collections.addAll(list, 1, 2, 3, 4, 5, 6);

System.out.println(list); // [1, 2, 3, 4, 5, 6]

final var iterator = list.listIterator();
while (iterator.hasNext()) {
    final var value = iterator.next();
    if (value % 2 == 0) {
        iterator.remove();
    }
}

System.out.println(list); // [1, 3, 5]

void set (E e)

用指定元素替换 next() 或 previous() 返回的最后一个元素(可选操作)。 (机器翻译)

final var list = new ArrayList<String>();
Collections.addAll(list, "aaa", "bbb", "ccc");

System.out.println(list); // [aaa, bbb, ccc]

final var iterator = list.listIterator();
while (iterator.hasNext()) {
    final var value = iterator.next();
    iterator.set(value.toUpperCase());
}

System.out.println(list); // [AAA, BBB, CCC]

Methods declared in Iterator

forEachRemaining

请参阅下面的链接。


相关文章

To top of page