Java : ListIterator - API使用例
ListIterator (Java SE 21 & JDK 21) の使用例まとめです。
だいたいのメソッドを網羅済みです。
API仕様書のおともにどうぞ。
概要
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);
}
// 結果
// ↓
//-- next --
//aaa
//bbb
//ccc
System.out.println("-- previous --");
while (iterator.hasPrevious()) {
final var value = iterator.previous();
System.out.println(value);
}
// 結果
// ↓
//-- previous --
//ccc
//bbb
//aaa
メソッド
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 ()
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);
}
// 結果
// ↓
//-- next --
//index = 0, value = aaa
//index = 1, value = bbb
//index = 2, value = ccc
boolean hasPrevious ()
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);
}
// 結果
// ↓
//-- previous --
//index = 2, value = ccc
//index = 1, value = bbb
//index = 0, value = aaa
E next ()
このメソッドの使用例は、hasNext() にまとめて記載しました。
そちらのAPI使用例をご参照ください。
int nextIndex ()
このメソッドの使用例は、hasNext() にまとめて記載しました。
そちらのAPI使用例をご参照ください。
E previous ()
このメソッドの使用例は、hasPrevious() にまとめて記載しました。
そちらのAPI使用例をご参照ください。
int previousIndex ()
このメソッドの使用例は、hasPrevious() にまとめて記載しました。
そちらのAPI使用例をご参照ください。
void remove ()
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)
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]
Iteratorで宣言されたメソッド
forEachRemaining
「Java API 使用例 : Iterator」をご参照ください。
関連記事
- API 使用例
- Collection (コレクション)
- Collections (コレクション操作)
- Comparable
- Comparator
- Iterator
- List (リスト)
- Map (マップ)
- Map.Entry (キーと値のペア)
- Queue (キュー)
- AbstractQueue
- ArrayBlockingQueue (ブロッキング・配列キュー)
- ArrayDeque (両端キュー)
- BlockingDeque (ブロッキング・両端キュー)
- BlockingQueue (ブロッキング・キュー)
- ConcurrentLinkedDeque (並列処理用・両端キュー)
- ConcurrentLinkedQueue (並列処理用キュー)
- Deque (両端キュー)
- LinkedBlockingDeque (ブロッキング・リンク両端キュー)
- LinkedBlockingQueue (ブロッキング・リンクキュー)
- LinkedList (二重リンク・リスト)
- PriorityBlockingQueue (ブロッキング・優先度付きキュー)
- PriorityQueue (優先度付きキュー)
- RandomAccess
- Set (セット)
- Spliterator