java.util.ListIterator接口分析

java中为基于数组实现的ADT线性表提供了ListIterator接口,首先ListIterator是内部类迭代器,其中ListIterator接口中定义了9个不同的方法,这9个不同的方法具体作用如下:

1 next():此方法先返回当前元素,然后让迭代前进一步,就是将currentIndex的值加一。

2 previous():此方法先将迭代后退一步,然后返回当前元素的前一个元素,注意与next()的区别,next()是返回当前元素后才加一。

3 hasNext():此方法是判断是否可以继续向后迭代。不要被名字蒙蔽了。名字有next,但是意思并不是。它是判断当前元素的索引是否小于等于ADT线性表的元素个数。也就是return currentIndex

4 hasPrevious():地方法是判断是否可以向前迭代。它判断当前元素的索引是否在1--length之间。

  return (currentIndex>0)&&(currentIndex<=length).

5 nextIndex() :此方法中会调用hasNext()方法,如果hasNext()方法返回true,这说明currentIndex的值在在0--length-1之间。此时返回的是当前元素的索引,如果当前已经到了末尾,则返回ADT线性表的长度。注意不要被名字蒙蔽了。其实返回当前元素索引,不是下一个。

6 previousIndex():此方法中会调用hasPrevious()方法,如果hasPrevious()返回true,这说明currentIndex的值在1--length之间。此时返回当前元素的索引。如果已经到了线性表的开端,则返回-1;

7 add():此方法实际上是调用了线性表的add()方法。只不过在调用线性表的add()方法之前先将迭代向后一步。。

8 remove():此方法中调用线性表的remove()方法,如果调用之间调用了next()方法,那么移除当前元素,然后将currentIndex的值减一。这样currentIndex就是next()方法返回的值的索引。如果调用之间调用了previousf()方法,那么移除的是previous()方法返回的元素。注意:在调用remove()方法之间首先要调用next()或者previous()方法,并且没有调用过add()。因为remove方法移除的是next()或者是previous()方法返回的元素的下一个元素。如果调用add()会改变currentIndex的值。

9 set()此方法是用新的值去替换next()和previous()返回的元素。

你可能感兴趣的:(java,.net,asp.net,asp)