ListIterator-迭代器】的更多相关文章

一.基本概念 迭代器是一个对象,也是一种设计模式,Java有两个用来实实现迭代器的接口,分别是Iterator接口和继承自Iterator的ListIterator接口.实现迭代器接口的类的对象有遍历集合对象,选择集合中的元素和删除集合中元素的方法.而在使用它时不必知道该集合对象底层的结构.Java类库中实现Iterator接口的迭代器只能正向遍历集合中的元素,而实现ListIterator接口的迭代器不仅能够正向遍历,还能够反向遍历集合中的元素. 二.源码分析 2.1.Iterator接口与L…
1. ListIterator(列表迭代器): ListIterator listIterator():List集合特有的迭代器 2. 代码示例: package cn.itcast_04; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.ListIterator; /* * 列表迭代器: * ListIterator listIterator():Lis…
LIstIterator是一个更加强大的Iterator的子类型,它只能用于各种List类的访问,尽管Iterator只能向前移动,但是ListIterator可以双向移动,它还可以产生相对于迭代器在列表指向的当前位置的前一个和后一个元素的索引,并且可以使用set()方法替换它访问过的最后一个元素. 你可以通过ListIterator()方法产生一个指向List开始处的ListIteraor,并且还可以通过调用ListIterator(n)方法创建一个一开始就指向索引列表n的元素处的ListIt…
listIterator() 迭代器包含了 Iterator() 迭代器中的所有方法. 1.ListIterator的常用方法 hasPrevious() :判断是否还有上一个元素,有则返回true  (反向遍历)    previous() :返回列表中的上一个元素,并向后(上)移动光标位置    next() :返回列表中的下一个元素,并且前进光标位置    hasNext() :判断是否还有下一个元素,有则返回true  (正向遍历)    set(E e) :用指定的元素替换由 next…
列表迭代器: ListIterator listerator():List集合特有的迭代器 该迭代器继承了Iterator迭代器,所以,就可以直接使用hasNext()和next()方法 特有功能: Object previous();获取上一个元素 boolean hasPrevious():判断是否有元素 注意:ListIterator可以实现逆向遍历,但是必须先正向遍历,才能逆向遍历,所以一般无意义,不使用 package com.wyh.Iterator; import java.uti…
(请关注 本人"Collection集合"博文--<详解 Collection集合>) Iterator接口(迭代器): 概述: 对 collection 进行迭代的迭代器 在我们现阶段的学习中,只需要理解这个接口所提供的三个方法即可: boolean hasNext() 如果仍有元素可以迭代,则返回 true. E next() 返回迭代的下一个元素. void remove() 从迭代器指向的 collection 中移除迭代器返回的最后一个元素(可选操作). 现在,本…
在使用Java集 合的时候,都需要使用Iterator.但是java集合中还有一个迭代器ListIterator,在使用List.ArrayList. LinkedList和Vector的时候可以使用.这里有一点需要明确的时候,迭代器指向的位置是元素之 前的位置,如下图所示: 这里假设集合List由四个元素List1.List2.List3和List4组成,当使用语句Iterator it = List.Iterator()时,迭代器it指向的位置是上图中Iterator1指向的位置,当执行语句…
大家好!本文介绍迭代器模式及其在Javascript中的应用. 模式介绍 定义 提供一种方法顺序一个聚合对象中各个元素,而又不暴露该对象内部表示. 类图及说明 Iterator抽象迭代器 抽象迭代器负责定义访问和遍历元素的接口,而且基本上是有固定的3个方法:first()获得第一个元素,next()访问下一个元素,isDone()(或者为hasNext())是否已经访问到底部 ConcreIterator具体迭代器 具体迭代器角色要实现迭代器接口,完成容器元素的遍历. Aggregate抽象容器…
当我们在对集合(List,Set)进行操作的时候,为了实现对集合中的数据进行遍历,经常使用到了Iterator(迭代器).使用迭代器,你不需要干涉其遍历的过程,只需要每次取出一个你想要的数据进行处理就可以了.但是在使用的时候也是有不同的,List和Set都有iterator()来取得其迭代器.对List来说,你也可以通过listIterator()取得其迭代器,两种迭代器在有些时候是不能通用的. Iterator迭代器包含的方法: hasNext():如果迭代器指向位置后面还有元素,则返回 tr…
以脑图的形式来展示Java集合知识,让零碎知识点形成体系 Iterator 对比   Iterator(迭代器)是一种设计模式,是一个对象,用于遍历集合中的所有元素.  Iterator 包含四个方法,分别是:next().hasNext().remove().forEachRemaining(Consumer<? super E> action)   Collection 接口继承 java.lang.Iterable,因此所有 Collection 实现类都拥有 Iterator 迭代能力…
(一)iterator迭代器 Collection的iterator方法返回一个实现了一个Iterator接口的对象 Iterator接口中包含三个方法: 1)E next() 2)boolean hasNext() 3)void remove 具体用法: Iterator<Integer> integers=collection.iterator(); while(integers.hasNext()){ System.out.print(integers.next()+" &qu…
前言 这次要介绍的是迭代器模式,也是一种行为模式.我现在觉得写博客有点应付了,前阵子一天一篇,感觉这样其实有点没理解透彻就写下来了,而且写完后自己也没有多看几遍,上次在面试的时候被问到java中的I/O的各种实现用到了什么设计模式,我愣是想半天没想出来了,人家还给提示了我也没想出来,最后还是面试官给出的答案,是装饰模式,听到答案后就恍然大悟了,前两天刚看了装饰模式,还写下了I/O操作中的各种类都是用到了装饰模式,后来想想两方面原因造成的当时没回答出来,一是面试时紧张就容易想不起来,二是对设计模式…
原文:https://blog.csdn.net/GongchuangSu/article/details/51514380 Iterator接口是对collection进行迭代的迭代器,ListIterator接口是其子接口.它们都是遍历集合的工具. Collection依赖于Iterator,其实现类都必须实现iterator()函数,返回一个Iterator对象:ListIterator是专门遍历List而存在的. Iterator Iterator迭代器包含以下三种方法: boolean…
模式概述 模式定义 模式结构图 模式伪代码 模式改进 模式应用 模式在JDK中的应用 模式在开源项目中的应用 模式总结 说明:设计模式系列文章是读刘伟所著<设计模式的艺术之道(软件开发人员内功修炼之道)>一书的阅读笔记.个人感觉这本书讲的不错,有兴趣推荐读一读.详细内容也可以看看此书作者的博客https://blog.csdn.net/LoveLion/article/details/17517213. 模式概述 模式定义 在软件开发中,经常需要使用聚合对象来存储一系列数据.聚合对象有两个职责…
import java.util.ArrayList; import java.util.List; import java.util.ListIterator; /* 迭代 listIterator() ListIterator特有的方法: 添加: hasPrevious() 判断是否存在上一个元素. previous() 当前指针先向上移动一个单位,然后再取出当前指针指向的元素. next(); 先取出当前指针指向的元素,然后指针向下移动一个单位. ---------------------…
本文转自http://my.oschina.net/zzw922cn/blog/491631 一.ArrayList ArrayList是一个可以处理变长数组的类型,这里不局限于“数”组,ArrayList是一个泛型类,可以存放任意类型的对象.顾名思义,ArrayList是一个数组列表,因此其内部是使用一个数组来存放对象的,因为Object是一切类型的父类,因而ArrayList内部是有一个Object类型的数组类存放对象.ArrayList类常用的方法有add().clear().get().…
JDK List源码分析 List接口定义了有序集合(序列).在Collection的基础上,增加了可以通过下标索引访问,以及线性查找等功能. 整体类结构 1.AbstractList   该类作为List的通用骨架实现,和AbstractCollection一样,也是为了减少实现该接口的工作量.为了实现一个只读的List,仅仅只需要实现get和size方法即可.而对于读写的List,则需要额外覆写set,add和remove.   该类基于get(int),set(int, Object)等方…
浏览以下内容前,请点击并阅读 声明 下面对集中核心集合的接口分别总结 Collection接口 一般情况下,集合的实现类会有一个含有Collection类型为参数的构造器,可以由一个指定的集合类创建该实现类的对象,能够实现集合类型的相互转化. Collection包含一些执行基本操作的方法,如int size(), boolean isEmpty(), boolean contains(Object element), boolean add(E element), boolean remove…
Collection List 在Collection的基础上引入了有序的概念,位置精确:允许相同元素.在列表上迭代通常优于索引遍历.特殊的ListIterator迭代器允许元素插入.替换,双向访问,从列表中的制定位置开始(根据index获取index位置的元素).未实现get方法. AbstractList 实现了List中的一些方法,支持随机访问.lastIndexOf通过特殊迭代器能够制定开始位置,从后遍历的特性来实现.直接通过指定的位置,借助特殊迭代器找到. Vector 实现可增长的数…
List Class Diagram: 笔记一: 1.Iterable 接口只定义一个iterator()方法. Iterator 接口有hasNext, next, remove方法. ListIterator接口继承Iterator接口,增加了hasPrevicous,previous,nextIndex, previousIndex,add,set方法. 2.AbstractCollection中: (1)public <T> T[] toArray(T[] a) 方法: 如果数组a空间…
API中的常用类 System类System类包含一些有用的类字段和方法.它不能被实例化.属性和方法都是静态的. out,标准输出,默认打印在控制台上.通过和PrintStream打印流中的方法组合构成输出语句.In,标准输入,默认是键盘,获取键盘录入的所有内容.描述系统的一些信息:Properties getProperties(),获得系统的属性信息.Properties是HashTable的子类,是Map集合的子类对象:属性类,比较常用.该集合中存储的都是字符串,没有泛型定义.获取系统属性…
各种原因,前两年做C语言去了,现在重新做JAVA, 感觉自己基础很不扎实,要好好学习啦, 先从简单的开始~ 以下内容基于jdk1.7.0_79源码: 什么是ArrayList 可以简单的认为是一个动态数组:实际上ArrayList就是用数组实现的,长度不够时,调用Arrays.copyOf方法,拷贝当前数组到一个新的长度更大的数组: ArrayList特点 随机访问速度快,插入和移除性能较差(数组的特点): 支持null元素: 有顺序: 元素可以重复: 线程不安全: ArrayList继承的类和…
现在,我们再回头看看总结一下List.内容包括:第1部分 List概括第2部分 List使用场景第3部分 LinkedList和ArrayList性能差异分析第4部分 Vector和ArrayList比较 转载请注明出处:http://www.cnblogs.com/skywang12345/p/3308900.html 第1部分 List概括 先回顾一下List的框架图 (01) List 是一个接口,它继承于Collection的接口.它代表着有序的队列.(02) AbstractList…
一.List接口概述. List有个很大的特点就是可以操作角标. 下面开始介绍List接口中相对于Collection接口比较特别的方法.在Collection接口中已经介绍的方法此处就不再赘述. 1.添加  void add(int index, E element)           在列表的指定位置插入指定元素(可选操作).  boolean addAll(int index, Collection<? extends E> c)           将指定 collection 中的…
概要 前面,我们学完了List的全部内容(ArrayList, LinkedList, Vector, Stack). Java 集合系列03之 ArrayList详细介绍(源码解析)和使用示例 Java 集合系列04之 fail-fast总结(通过ArrayList来说明fail-fast的原理.解决办法) Java 集合系列05之 LinkedList详细介绍(源码解析)和使用示例 Java 集合系列06之 Vector详细介绍(源码解析)和使用示例 Java 集合系列07之 Stack详细…
一.集合的出现 1.1.集合简述 面向对象语言对事物的体现都是以对象形式,为了方便对多个对象的操作,就对象对象进行存储,集合就是存仪储对象最常用的一种试 1.2.数组和集合都是容器 数组也存对象,存储同一种类型,但数组是固定长度的,集合长度是可变. 数组中可以存储基本数据类型,集合只能存储对象 1.3.集合特点 集合只用于存储对象,集合长度是可变的,集合可以存储不同类型的对象. 1.4.结构 二.集合共性方法 2.1.Collection接口顶级 Collection 层次结构 中的根接口.Co…
第一部分,JAVA基础和面向对象 part01 入门与开发环境搭建 1: 计算机基础知识(了解)(1)计算机(2)计算机硬件(3)计算机软件系统软件:windows,linux,mac应用软件:QQ,YY,扫雷,CS/F(4)软件开发就是用开发工具和计算机语言做出软件(5)计算机语言人与计算机的交流方式(6)人机交互A:图像界面方便,简单,直观.B:DOS 窗口方式要有控制台, 要记住很多的命令, 麻烦.(7)键盘功能键和快捷键的介绍(掌握)A:键盘功能键tabshiftctrlalt空格ent…
转载:https://my.oschina.net/zzw922cn/blog/491631 一.ArrayList ArrayList是一个可以处理变长数组的类型,这里不局限于"数"组,ArrayList是一个泛型类,可以存放任意类型的对象.顾名思 义,ArrayList是一个数组列表,因此其内部是使用一个数组来存放对象的,因为Object是一切类型的父类,因而ArrayList内部是有一个 Object类型的数组类存放对象.ArrayList类常用的方法有add().clear()…
Java2中的集合框架是广为人知的,本文打算从几个方面来说说自己对这个框架的理解. 下图是java.util.Collection的类图(基本完整,有些接口如集合类均实现的Cloneable.Serializable没有包含进去) 我们常说要继承的话,到底是写个抽象类还是接口,它们区别在于:如果子类确实是父类的一种,应该使用抽象类,描述是"is-a"的关系,而接口则表示一种行为,描述的是"like-a"的关系.但在Java类库里,其实许多原则由于各种原因被打破了,比…
△列表迭代器也是不支持在迭代的时候添加元素的,只是列表迭代器自己定义了增删的方法而已.迭代器可以看成实在两个元素之间的指针,每当调用next就跳过一个元素并返回刚刚跳过的元素. △HashTable不允许null作为键和值,而HashMap可以. △在Java中,所有链表实际上都是双向连接的,即每个节点还存放着指向前驱节点的引用 ,add方法将在listiterator迭代器位置前添加一个元素.尽管有Listiterator,但是对列表的并发修改仍然会产生异常,但是这里有个特例,set操作不被视…