概述
需要的注意点:
1.
正向遍历不需要传入数组长度值,反向遍历需要传入list的数组长度(迭代器指针指向最后一个位置)
2.
反向遍历,调用previous()获取元素,下标不会加1操作;
正向遍历,调用next()获取元素,下标会加1操作;
3.
previousIndex()获取的是上一个元素的下标,nextIndex()获取的是当前元素的下标(不是下一个元素的下标)
List<String> list = new ArrayList<String>();
list.add("s");
list.add("j");
list.add("y");
// 正向遍历--不需要传入list的数组长度
// 反向遍历--要传入list的数组长度(迭代器指针指向最后一个位置)
ListIterator<String> listIterator1 = list.listIterator(list.size());
while (listIterator1.hasPrevious()) {
// 反向遍历,调用previous()获取元素,下标不会加1操作
// 正向遍历,调用next()获取元素,下标会加1操作
String previous = listIterator1.previous();
if ("j".equals(previous)) {
System.out.println(listIterator1.nextIndex()); // 输出1
System.out.println(listIterator1.previousIndex()); // 输出0
}
}
ListIterator<String> listIterator2 = list.listIterator();
while (listIterator2.hasNext()) {
// 一旦调用next()方法,下标位置会加1
String next = listIterator2.next();
if ("j".equals(next)) {
// 获取next元素下一个元素的下标
// 当前已调用next方法,所以下标已经加1,而nextIndex返回的为当前下标(可通过源码查看,next不是下一个,而是当前下标)
System.out.println(listIterator2.nextIndex()); // 输出2
// 获取next元素的下标(当前已调用next方法,所以下标已经加1, 通过previousIndex获取上一个下标)
System.out.println(listIterator2.previousIndex());; // 输出1
}
}
最后
以上就是大意睫毛为你收集整理的关于ListIterator的用法的全部内容,希望文章能够帮你解决关于ListIterator的用法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复