在本教程中,我們將借助示例學(xué)習(xí)Java ListIterator接口。
Java集合框架的接口ListIterator提供了訪(fǎng)問(wèn)列表元素的功能。
它是雙向的。 這意味著它允許我們?cè)趦蓚€(gè)方向上迭代列表的元素。
它繼承了Iterator接口。
List接口提供了ListIterator()方法,該方法返回ListIterator接口的實(shí)例。
ListIterator接口提供了可用于對(duì)列表元素執(zhí)行各種操作的方法。
hasNext() - 如果列表中存在元素,則返回true
next() - 返回列表的下一個(gè)元素
nextIndex() - 返回next()方法將返回的元素的索引
previous() - 返回列表的前一個(gè)元素
previousIndex()- 返回previous()方法將返回的元素的索引
remove()- 刪除由next()或previous()返回的元素
set() - 將next()或previous()返回的元素替換為指定的元素
在下面的示例中,我們?cè)谝粋€(gè)數(shù)組列表中實(shí)現(xiàn)了ListIterator接口的next()、nextIndex()和hasNext()方法。
import java.util.ArrayList; import java.util.ListIterator; class Main { public static void main(String[] args) { //創(chuàng)建一個(gè)ArrayList ArrayList<Integer> numbers = new ArrayList<>(); numbers.add(1); numbers.add(3); numbers.add(2); System.out.println("ArrayList: " + numbers); //創(chuàng)建ListIterator的實(shí)例 ListIterator<Integer> iterate = numbers.listIterator(); //使用next()方法 int number1 = iterate.next(); System.out.println("下一元素: " + number1); //使用nextIndex() int index1 = iterate.nextIndex(); System.out.println("下一元素位置: " + index1); //使用hasNext()方法 System.out.println("還有下一個(gè)元素嗎? " + iterate.hasNext()); } }
輸出結(jié)果
ArrayList: [1, 3, 2] 下一元素: 1 下一元素位置: 1 還有下一個(gè)元素嗎? true
在下面的示例中,我們?cè)跀?shù)組列表中實(shí)現(xiàn)了ListIterator接口的previous()和previousIndex()方法。
import java.util.ArrayList; import java.util.ListIterator; class Main { public static void main(String[] args) { //創(chuàng)建一個(gè)ArrayList ArrayList<Integer> numbers = new ArrayList<>(); numbers.add(1); numbers.add(3); numbers.add(2); System.out.println("ArrayList: " + numbers); //創(chuàng)建ListIterator的實(shí)例 ListIterator<Integer> iterate = numbers.listIterator(); iterate.next(); iterate.next(); //使用previous()方法 int number1 = iterate.previous(); System.out.println("上一個(gè)元素: " + number1); //使用previousIndex () int index1 = iterate.previousIndex(); System.out.println("上一個(gè)元素的位置: " + index1); } }
輸出結(jié)果
ArrayList: [1, 3, 2] 上一個(gè)元素: 3 上一個(gè)元素的位置: 0
在上面的實(shí)例中,最初迭代器的實(shí)例在1之前。因?yàn)樵?之前沒(méi)有元素,所以調(diào)用previous()方法將拋出異常。
然后,我們使用了next()2次方法?,F(xiàn)在Iterator實(shí)例將在3到2之間。
因此,previous()方法返回3。