java集合框架四

(2) List 接口不但以位置序列迭代的遍历整个列表,还能处理集合的子集:

   ListIterator listIterator() : 返回一个列表迭代器,用来访问列表中的元素

   ListIterator listIterator(int index) : 返回一个列表迭代器,用来从指定位置index开始访问列表中的元素

  List subList(int fromIndex, int toIndex) :返回从指定位置fromIndex(包含)到toIndex(不包含)范围中各个元素的列表视图

  “对子列表的更改(如 add()、remove() 和 set() 调用)对底层 List 也有影响。”

  2.1.ListIterator接口

  ListIterator 接口继承 Iterator 接口以支持添加或更改底层集合中的元素,还支持双向访问。ListIterator没有当前位置,光标位于调用previous和next方法返回的值之间。一个长度为n的列表,有n+1个有效索引值:

  (1) void add(Object o): 将对象o添加到当前位置的前面

   void set(Object o): 用对象o替代next或previous方法访问的上一个元素。如果上次调用后列表结构被修改了,那么将抛出IllegalStateException异常。

  (2) boolean hasPrevious(): 判断向后迭代时是否有元素可访问

   Object previous():返回上一个对象

   int nextIndex(): 返回下次调用next方法时将返回的元素的索引

   int previousIndex(): 返回下次调用previous方法时将返回的元素的索引

  “正常情况下,不用ListIterator改变某次遍历集合元素的方向 — 向前或者向后。虽然在技术上可以实现,但previous() 后立刻调用next(),返回的是同一个元素。把调用 next()和previous()的顺序颠倒一下,结果相同。”

  “我们还需要稍微再解释一下 add() 操作。添加一个元素会导致新元素立刻被添加到隐式光标的前面。因此,添加元素后调用 previous() 会返回新元素,而调用 next() 则不起作用,返回添加操作之前的下一个元素。”

你可能感兴趣的:(java,框架)