在ListIterator中,由nextIndex变量来指示下一个next()要读取的元素位置,previousIndex来指示下一个previous()要读取的元素位置,nextIndex和previousIndex有关系:
nextIndex = previousIndex + 1
假设当前nextIndex = i, previousIndex = i - 1, 当你调用next()时,返回第i个元素,此时nextIndex = i + 1, previousIndex = i. 当你立即调用previous()时,很显然会返回第i个元素,然后nextIndex = i, previousIndex = i - 1;
所以就出现了你描述的问题,这个问题只出现在由next()转入previous()或previous()转入next()的时候.当连续调用previous()或next()的时候是没有问题的.
(上述出自:)
ListIterator的next()和previous()交替会使指不会发生改变,个人暂时还没有找到好的解决方法:
前面使用过next(),则使用两次previous()可以取得前一个,如果只使用一次,值不会发生改变。
阅读(5864) | 评论(0) | 转发(0) |