Java学习之集合框架的迭代器--Iteratorjk及ListItertor接口

  通常情况下,你会希望遍历一个集合中的元素。例如,显示集合中的每个元素。一般遍历数组都是采用for循环或者增强for,这两个方法也可以用在集合框架,但是还有一种方法是采用迭代器遍历集合框架,它是一个对象,实现了Iterator 接口或ListIterator接口。迭代器,使你能够通过循环来得到或删除集合的元素。ListIterator 继承了Iterator,以允许双向遍历列表和修改元素。Iterator和ListIterator都是泛型接口,它们的 声明:

  interface  Iterator<E>

  interface  ListIterator<E>

Iterator接口声明的方法
default  void forEachRemaining(Consumer<? super E> action)
对于集合中每个未处理的元素,执行action指定的动作(JDK8新增)

boolean  hasNext()
如果还有更多元素,就返回true,否则返回false

E  next() 返回下一个元素。如果不存在下一个元素,就抛出NoSuchElementException异常
default  void  remove() 移除当前元素。如果在调用next()方法之前试图调用remove(),会抛出异常
ListIterator接口声明的方法
方法 描述
void  add(E  obj) 将obj插入到列表中,新插入的元素位于下一次next()方法调用返回的元素之前
boolean  hasNext() 如果存在下一个元素就返回true,否则就返回false
boolean  hasPrevious() 如果存在前一个元素,就返回true,否则返回false
E next() 返回下一个元素。如果不存在下一个元素,就抛出NoSuchElementException异常
int  nextIndex() 返回下一个元素的索引。如果不存在下一个元素,就返回列表的大小
E  previous() 返回前一个元素。如果不存在前一个元素,就抛出NoSuchElementException异常
int  previousIndex() 返回前一个元素的索引。如果不存在前一个元素,就返回  -1
void  remove() 从列表中移除当前元素。如果在调用next()或previous()方法之前调用remove()方法,就会抛出IllegalStateException 异常
void  set(E  obj) 将obj的值赋给当前元素,也就是next()或previous()方法调用最后返回的元素

只有实现List接口的集合才能使用 ListIterator。

时间: 2024-12-10 22:47:35

Java学习之集合框架的迭代器--Iteratorjk及ListItertor接口的相关文章

Java学习之集合框架(1) &lt;好程序员特训营&gt;

<A href="http://www.goodprogrammer.org/" target="blank">android培训</a>------我的java笔记,期待与您交流! 集合框架图: 1. Collection Collection定义了集合框架的共性功能. 1)添加  add(e);  addAll(collection); 2)删除  remove(e);  removeAll(collection);  clear();

java学习日记 集合框架

集合框架 有两大接口  一个是 Collection (类集 )与Map (映射): collection 下有两大接口  一个是List (列表) 另一个是Set(集合) List (列表):ArrayList 基于数组实现的动态列表    动态数组 : LinkedList 基于链表实现的列表      双向循环链表 Vector 向量   ------>stack栈           与线程相关: Set (集合) :TreeSet       通过树实现的集合  有序集合 HashSe

Java学习关于集合框架的基础接口--Collection接口

 集合框架(Collection  Framework)是Java最强大的子系统之一,位于java.util 包中.集合框架是一个复杂的接口与和类层次,提供了管理对象组的最新技术.Java集合框架标准化了程序处理对象组的方式. 集合框架在设计上需要满足几个目标.首先,框架必须是高性能的.基本集合(动态数组.链表.树以及哈希表)的实现是高效率的.很少需要手动编写这些数据引擎中的某一个.其次,框架必须允许不同类型的集合以类似的方式进行工作,并且具有高度的互操作性.再次,扩展或改造必须易于实现.为了满

Java学习 ( 集合框架)

集合框架 概述:数组长度是固定的,当添加的元素超过了数组的长度时需要对数组重新定义,太麻烦,Java内部给我们提供了集合类,能存储任意对象,长度是可以改变的,随元素的增加而增加,随元素的减少而减少. 数组和集合的区别: 数组既可以存储基本数据类型,又可以存储引用数据类型.(基本数据类型存储的是值,引用数据类型存储的是地址值) 集合只能存储引用数据类型(对象) *集合中也可以存储基本数据类型,但是在存储的时候会自动装箱变成对象. 数组和集合的使用 : 如果元素个数是固定的推荐用数组. 如果元素个数

Java学习之集合框架(2) &lt;好程序员特训营&gt;

<A href="http://www.goodprogrammer.org/" target="blank">android培训</a>------我的java笔记,期待与您交流! 1.Set接口 Set集合不允许重复元素,是因为Set判断两个对象相同不是使用==运算符,而是根据equals方法.即两个对象用equals方法比较返回true,Set就不能接受两个对象. public class SetDemo { public static

Java学习之集合框架工具类

一.Collections Collections中的方法都是静态的 1 void sort(List<? extends Comparable<? super T>> list);//list集合元素必须具备比较性 2 void sort(List<T>,Comparator<? super T> c);//指定比较器,list集合元素可以不具备比较性 1 void swap(List<T>,int i,int j);//位置替换,相当于以下代

java常见的集合框架有哪些?

java常见的集合框架有哪些?很多学习java的朋友会问到这个问题,那么学习Java集合框架下大致可以分为如下五个部分:List列表.Set集合.Map映射.迭代器(Iterator.Enumeration).工具类(Arrays.Collections).今天西安java培训小编为大家分享. Java集合类的整体框架如下: 从上图中可以看出,集合类主要分为两大类:Collection和Map. Collection是List.Set等集合高度抽象出来的接口,它包含了这些集合的基本操作,它主要又

第48节:Java当中的集合框架

Java当中的集合框架 01 在我们班里有50位同学,就有50位对象. // 简书作者:达叔小生 Student[] stus = new Student[20]; 结果来了一位插班生,该同学因为觉得学IT行业好,才要求老师转专业的.可以结果没有多余的空位了,数组里的长度都是安排好的,没有空间了. 为了解决新同学的问题,老师们重新创建一个空间(重复创建一个新的数组),为了能够更好的解决问题,老师提供了可以不断扩大空间(Java提供了集合,当数据多了,个数不稳定时,可以用集合). 在Java中,数

JAVA基础之集合框架

集合框架(collections framework) 首先要明确,集合代表了一组对象(和数组一样,但数组长度不能变,而集合能).Java中的集合框架定义了一套规范,用来表示.操作集合,使具体操作与实现细节解耦. 其实说白了,可以把一个集合看成一个微型数据库,操作不外乎"增删改查"四种操作,我们在学习使用一个具体的集合类时,需要把这四个操作的时空复杂度弄清楚了,基本上就可以说掌握这个类了. 设计理念 主要理念用一句话概括就是:提供一套"小而美"的API.API需要对