ListIterator接口分析

原创 2007年10月10日 14:53:00

ListIterator是List迭代器,该接口继承Iterator,有关Iterator接口请看:
http://blog.csdn.net/treeroot/archive/2004/09/11/101589.aspx

这里列出所有的方法(包括在Iterator中的方法,Java源码中也常常这么做,虽然不是
必须呢,但是看起来确实比较方便).

public interface ListIterator extends Iterator

1.boolean hasNext()
从父接口继承

2. boolean next()
从父接口继承

3.boolean hasPrevious()
很容易理解,前面是否还有元素

4.Object previous()
返回前一个元素(next()返回的前一个)

5.int nextIndex()
下一个元素的索引号

6.int previousIndex()
上一个元素的索引号

7.void remove()
从父接口继承,和Iterator有点区别,因为可以是next()或者
previous()返回的元素,其他都一样

8.void set(Object o)
替换最后一次调用next()或者previous()的元素.

9.void add(Object o)
添加一个元素(在next()返回的元素之前,previous()返回的元素之后)


为了说明问题,这里把JDK中的部分注释摘抄如下
/**
*
* An iterator for lists that allows the programmer
* to traverse the list in either direction, modify
* the list during iteration, and obtain the iterator's
* current position in the list. A ListIterator
* has no current element; its cursor position always
* lies between the element that would be returned by a call
* to previous() and the element that would be
* returned by a call to next(). In a list of
* length n, there are n+1 valid
* index values, from 0 to n, inclusive.
*

*
*                     Element(0) Element(1) Element(2) ... Element(n)
*                 ^             ^          ^           ^             ^
* Index:      0             1          2           3             n+1
*
*
*
* Note that the {@link #remove} and {@link #set(Object)} methods are
* not defined in terms of the cursor position; they are defined to
* operate on the last element returned by a call to {@link #next} or {@link
* #previous()}.
*/

大致意思是:ListIterator是一个双向迭代器。ListIterator没有当前元素,它的当前游标是位于
调用next()和previsous()返回的元素之间。不过下面举的例子有点问题:下面的例子是n+1个元素。
如果有n个元素,那么游标索引就是0...n共n+1个。
注意:romove和set方法不是针对当前游标的操作,而是针对最后一次的next()或者previous()调用。

因为只是一个接口就不举例说明了。

 

用人新观念--允许最好的人才失败

用人新观念--允许最好的人才失败    1988年在硅谷成立的趋势科技只是一个不到10名员工的防毒软件小公司, 短短数年间,趋势科技跻身全球第二大企业、亚洲最大的防毒软件公司,。趋势科技公司成功的秘诀...
  • ghj1976
  • ghj1976
  • 2001-04-17 10:49:00
  • 1246

ListIterator的用法

ListIterator是一个功能更加强大的Iterator的子类型,其定义为:     public interface ListIterator extends Iterator      L...
  • li2006n
  • li2006n
  • 2014-03-06 14:57:13
  • 2486

Java 集合源码解析(2):ListIterator

ListIterator根据官方文档介绍, ListIterator 有以下功能: 允许我们向前、向后两个方向遍历 List; 在遍历时修改 List 的元素; 遍历时获取迭代器当前游标所在位置。 注...
  • u011240877
  • u011240877
  • 2016-10-07 22:57:23
  • 5529

listIterator(int index)方法

在List接口中,还有一个方法listIterator(int index)可以得到List的迭代器(ListIterator接口的对象),其中的参数index为迭代的起始位置,其它的同listIte...
  • inter18099
  • inter18099
  • 2012-10-13 18:43:37
  • 3047

[ java ] ListIterator 中的set方法!

import java.util.*; class  CollectionDemo { public static void main(String[] args) {   method_1(); }...
  • yangzhihello
  • yangzhihello
  • 2012-10-16 20:06:30
  • 1838

Iterator和ListIterator的作用和区别

Iterator和ListIterator主要区别有: 一、ListIterator有add()方法,可以向List中添加对象,而Iterator不能。 二、ListIterator和It...
  • u012289441
  • u012289441
  • 2014-08-25 21:36:54
  • 1234

MA000004 NSS信令与接口分析.doc

  • 2009年10月14日 11:39
  • 1.41MB
  • 下载

listIterator反向遍历学习笔记

ListIterator接口有两个方法,可以用来反向遍历链表E previous() bollean hasPrevious()import java.util.ArrayList; import j...
  • u014322541
  • u014322541
  • 2015-05-11 23:06:41
  • 445

黑马程序员_List集合类基本操作以及ListIterator的使用方法

List:元素是有序的,元素可以重复。因为该集合体系有索引。 Set:元素是无序的,元素不可以重复。 List: 特有方法。凡是可以操作角标的方法都是该体系特有的方法。 增: add(ind...
  • u014214523
  • u014214523
  • 2014-04-02 15:55:52
  • 595

JAVA中ListIterator和Iterator详解与辨析

在使用java集合的时候,都需要使用Iterator。但是java集合中还有一个迭代器ListIterator,在使用List、ArrayList、LinkedList和Vector的时候可以使用。这...
  • longshengguoji
  • longshengguoji
  • 2014-11-27 19:30:08
  • 32522
收藏助手
不良信息举报
您举报文章:ListIterator接口分析
举报原因:
原因补充:

(最多只允许输入30个字)