Java ListIterator关于逆向迭代器的问题?
    List list=new ArrayList();
    list.add(new Student("list1",16));
    list.add(new Studetn("list2",17));
    ListIterator it=list.ListIterator();
    //hasNext()返回的值
    System.out.println(it.hasNext());
    //正向遍历列表
    while(it.hasNext()){
         Student stu=(Student)it.next();
            if(stu.getName().equals("list1"))
                it.add(new Student("list2",17));
                System.out.println(stu);
    }

    /*
        it.add(new Student("list4"),19);
        System.out.println(it.hasPrevious());
    */
    //逆向遍历列表
    while(it.hasPrevious){
         Student stu=(Student)it.previous();
                System.out.println(stu);
    }

这段代码,运行结果为:

true
Student [name=list1,age=16]
Student [name=list2,age=17]
Student [name=list3,age=18]
//如果保留那段注释,程序到这里就结束了
//如果去掉注释,那么
true
Student [name=list4,age=19]

所以为什么正向迭代返回true,逆向需要再用迭代器add一次后才可以返回
true

0
扫码支付0.1元 ×
其他相关推荐
SORT的逆序,和Listiterator逆向迭代
iterator只能向前迭代 List还额外提供了一个listIterator()方法,该方法返回一个ListIterator对象,ListIterator接口继承了Iterator接口,ListIterator比Iterator增加了向后迭代的功能 不过在使用ListIterator迭代时,开始也需要正向迭代,然后在倒序迭代 public class Test { pub
List逆向遍历、反向遍历--Iterator详解
List逆向遍历、反向遍历–Iterator详解概述在使用java集合的时候,都需要使用Iterator。但是java集合中还有一个迭代器ListIterator,在使用List、ArrayList、LinkedList和Vector的时候可以使用。这两种迭代器有什么区别呢?下面我们详细分析。这里有一点需要明确的时候,迭代器指向的位置是元素之前的位置,如下图所示: 这里假设集合List由四个元素L
Java 集合中关于Iterator 和ListIterator的详解
1.IteratorIterator的定义如下:public interface Iterator<E> {}Iterator是一个接口,它是集合的迭代器。集合可以通过Iterator去遍历集合中的元素。Iterator提供的API接口如下:forEachRemaining(Consumer<? super E> action):为每个剩余元素执行给定的操作,直到所有的元素...
Java类集框架——Iterator和ListIterator 迭代器的使用(遍历集合)
学习目标: 掌握集合输出的标准操作。 掌握Iterator接口的主要作用及使用注意事项。 掌握ListIterator与Iterator接口的关系及区别。 掌握ListIterator接口的使用限制。 在集合的操作中支持以下几种方式:  Iterator  ListIterator  foreach输出  Enumeration输出 Iterator接口简介 集合输出
ListIterator中next()与previous()方法以及add()方法的初步理解与练习
    /*练习14    //以下我创建了一个方法  该方法实现的功能为将每个元素加入到list容器中的中间位置//用到的内容主要为  :    迭代器中单独的add方法//                      该方法可将元素插入到指针所指的位置//                      通过调用该next()与previous()方法改变指针的位置来改变元素的插入位置 //     ...
【JAVA语法】持有对象--Java中迭代器listIterator的用法
写在前面:    我也是一名java语言的爱好者,仅以此文作为学习的记录,对于文中出现的代码规范,代码格式,算法效率等问题,希望各路大神不吝赐教,在下感激不尽。同是学习的同学也同样希望互相交流,取长补短。                                                                                                  ...
使用ListIterator双向遍历集合
使用ListIterator双向遍历集合 @Test public void linkedListListIteratorTest(){ List< String > staff = new LinkedList(); staff.add ( "Amy" ) ; staff.add ( "Bob" ) ; staff.add ( "nCarl" )...
listIterator迭代器实现向前向后遍历
      我们在使用List,Set的时候,为了实现对其数据的遍历,我们经常使用到了Iterator(跌代器)。  使用跌代器,你不需要干涉其遍历的过程,只需要每次取出一个你想要的数据进行处理就可以了。但是在使用的时候也是有不同的。  List和Set都有iterator()来取得其迭代器。对List来说,你也可以通过listIterator()取得其迭代器,两种迭代器在有些时候是不能通用的,I...
java iterator如何倒序输出
iterator只能向前迭代 List还额外提供了一个listIterator()方法,该方法返回一个ListIterator对象,ListIterator接口继承了Iterator接口,ListIterator比Iterator增加了向后迭代的功能 不过在使用ListIterator迭代时,开始也需要正向迭代,然后在倒序迭代 public class Test { publi
迭代器ListIterator使用及并发修改List集合
有一个集合,判断里面有没有"world"这个元素, 如果有,我就添加一个"java"元素,请写代码实现。 接口 ListIterator 所有超级接口:  Iterator  public interface ListIterator extends Iterator 系列表迭代器,允许程序员按任一方向遍历列表、迭代期间修改列表,并获得迭代器在列表中的当前位置。 ListIt
集合框架listIterator() //返回此列表元素的列表迭代器(按适当顺序)。listIterator(int index) //返回列表中元素的列表迭代器(按适当顺序),从列表的指定位置开始。
Collection接口中有三个子接口(List,Set,Queue) Collection中的方法:   addAll(Collection<? extends E> c) addAll(int index, Collection<? extends E> c) clear() contains(Object o) containsAll(Collecti...
Java 集合源码解析(2):ListIterator
ListIterator根据官方文档介绍, ListIterator 有以下功能: 允许我们向前、向后两个方向遍历 List; 在遍历时修改 List 的元素; 遍历时获取迭代器当前游标所在位置。 注意,迭代器 没有当前所在元素一说,它只有一个游标( cursor )的概念,这个游标总是在元素之间,比如这样:初始时它在第 0 个元素之前,调用 next() 游标后移一位:调用 previous()
java集合中list集合基本用法及List集合特有的迭代器ListIterator
/* Collection |--List:元素是有序的,元素可以重复。因为该集合体系有索引。 |--ArrayList:底层的数据结构使用的是数组结构。特点:查询速度很快。但是增删稍慢。线程不同步。 |--LinkedList:底层使用的链表数据结构。特点:增删速度很快,查询稍慢。线程不同步。 |--Vector:底层是数组数据结构。线程同步。被ArrayList替代了。因为效率低。
(63)ListIterator用法、List均有的增删改查
一、List:带角标操作 二、集合增改查 二、若迭代器进行增删改查用ListLterator
java-collection的 iterator 返回的迭代器快速失败
import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; import java.util.TreeMap; public class TreeMapTest { public static void main(String[] ar
List集合特有的迭代器,ListIterator
List集合特有的迭代器,ListIterator是Iterator的子接口 /** * @author gaobin *什么是迭代器呢? *其实就是集合的取出方式 *如同抓娃娃游戏机中的夹子 *迭代器是取出方式,会直接访问集合中的元素所以将迭代器通过内部类的形式来进行描述 *通过容器的iterator()方法获取该内部类的对象。 *List集合特有的迭代器,ListIterat
ListIterator的双向遍历
package com.list; import java.util.ArrayList; import java.util.List; import java.util.ListIterator; public class demo4_list { public static void main(String[] args) { List l=new ArrayL
为什么ArrayList在使用迭代器迭代元素时不能使用List.remove()删元素,而是使用Iterator.remove()删元素
其实,我相信有一定经验的都已经知道了,把标题的“为什么”去掉读一遍,但是具体是为什么?今天本人跟进源码(jdk7)探了个究竟。注:这篇文章只介绍使用list.remove()抛出ConcurrentModificationException的原因,其它参数及异常不作介绍。直入主题,首先我们来看下面这段出问题的代码下面是运行结果使用iterator.remove()是没有问题的,此处就不粘图了由运行...
Java学习篇之迭代器并发修改异常问题
迭代器并发修改异常的问题
Iterator迭代器-ListIterator-Enumeration枚举类接口的特点和区别
Iterator迭代器-ListIterator-Enumeration枚举类接口的特点和区别 1、Iterator的特点:     API中是这样解释的: 对collection进行迭代的迭代器。它取代了Enumeration.迭代器与枚举有两点不同: A.迭代器允许调用者利用定义良好的语义在迭代期间从迭代器所指向的collection移除元素。 B.在方法名上得到了改进。
#Java集合--ListIterator和Iterator迭代器的联系与区别
List的listIterator()方法会返回一个ListIterator迭代器对象,该迭代器的功能和Iterator迭代器基本相同,基本使用如下所示: ListIterator<String> iterator = list.listIterator(); for(;iterator.hasNext();){ String value = iterator.next(); S...
(集合)ListIterator---迭代过程中改变集合的内容
  如果需要在遍历集合的过程中,动态改变集合中的元素,尤其是添加元素,必须使用ListIterator进行迭代。 普通的Iterator迭代器不能在迭代过程中,向集合加入元素,将发生异常。   public static void main(String[] args) { List<String> list = new ArrayList<String>...
List集合ListIterator和Iterator迭代器区别与用法
ListIterator是Iterator的子接口,是List集合特有的迭代输出接口,它可以实现在迭代过程中对元素的增删改查。在使用Iterator迭代过程中,不要使用集合操作元素,容易出现异常,demo1:package com.wql;import java.util.ArrayList; import java.util.Iterator; import java.util.ListItera
java_关于集合(Collection接口,List接口及其子类,Iterator迭代器接口)
(一)集合概念:用于存储多个对象的单一对象(容器),存储的数据叫元素.元素都是引用类型 PS:容器内存储的都是对象的地址; 用于模拟现实生活中的容器,因此集合类型,不单是一种,有很多类型设计成各种存储的数据结构,这种类型叫做集合框架 元素:必须是引用数据类型的数据,不能是基本数据类型的数据,可以是包装类 JDK1.5新特性: 1.5前容器可以存储Object的任何子类型,但...
使用ListIterator 对List遍历时修改,删除
使用ListIterator实现对List进行遍历时修改,以及List的反向遍历
Iterator循环删除list中元素
一、业务场景 当我们需要剔除list中的某些元素时,通常的做法就是循环遍历list,然后符合条件时remove掉该元素。 一、实现逻辑 for (Iterator<String> iterator = list.iterator(); iterator.hasNext(); ) { String str=iterator.next(); if (Obje...
List集合的迭代神器ListIterator
一 ListIterator迭代器的概述 ListIterator与Iterator接口不同,它不仅可以向后迭代,它还可以向前迭代。 ListIterator相对Iterator增加了如下3个方法: boolean hasPrevious():返回该迭代器关联的集合是否还有上一个元素。 Object previous():返回该迭代器的上一个元素。 void add():在指定位置插入一
关于使用Iterator删除List中的多个元素
今天在写代码时要删除List中的多个元素时犯了一个很搞笑的错误,等效的就是以下代码 public static void main(String[] args) { List<String> a = new ArrayList<String>(); a.add("1"); a.add("2"); a.add("3");
list集合在用iterator迭代时,修改集合长度, 不一定会引发异常
import java.util.ArrayList; import java.util.List; public class IteratorTest { public static void main(String[] args) { /* * list集合在用iterator迭代时,修改集合长度, 不一定会引发 * ConcurrentModificationExcep
反向迭代器reverse_iterator与正向迭代器iterator之间的转换(list反向删除元素的方法)
首先,本文的公众号地址为:你真的会清理std::list的元素吗? 刚开通公众号,请求大家关注一下,谢谢大家。公众号二维码如下:有经验的程序员都知道,list是链表,可以遍历删除,删除的过程类似于以下代码(遍历删除521):int key=521;//程序员就不要爱情了吧 list::iterator it=l.begin();//l为std::list for (; it != l.en
Java中迭代器所引发的思考(List中迭代器的存在一直是使我迷茫的一个点)
正像题目所说,我刚开始学Java接触到集合的时候,发现里面有个迭代器,不准确的说应该是我同学告诉我里面有个迭代器,然后说的很屌的样子。But,说实话,我真心觉得这个迭代器的存在简直是不可理解,比Java的泛型还扯淡,没有丝毫存在的价值。里面的迭代我完全可以自己写一个简单方法用来实习嘛,无非就遍历一下集合给我个这么复杂的方式干嘛。当时因为心思浮躁我就自欺欺人的告诉自己这属于一种设计模式。
java迭代器模式实现正反向遍历
用java编写的迭代器,实现10数字正反向遍历。
简单说说 Iterator 和 ListIterator 的区别?
:区别主要如下。ListIterator 有 add() 方法,可以向 List 中添加对象,而 Iterator 不能。ListIterator 和 Iterator 都有 hasNext() 和 next() 方法,可以实现顺序向后遍历,但是 ListIterator 有 hasPrevious() 和 previous() 方法,可以实现逆向(顺序向前)遍历,Iterator 就不可以。Li...
Java集合详解3:Iterator,fail-fast机制与比较器
今天我们来探索一下LIterator,fail-fast机制与比较器的源码。 具体代码在我的GitHub中可以找到 https://github.com/h2pl/MyTech 喜欢的话麻烦star一下哈 文章首发于我的个人博客: https://h2pl.github.io/2018/05/9/collection3 更多关于Java后端学习的内容请到我的CSDN博客上查看:http...
集合- Iterator(迭代器)源码详解以及自定义迭代器实现
迭代器:是一种设计模式,提供了一种方法,来对集合,容器进行遍历的方式,不需要关注底层数据结构和数据类型,来达到底层和上层遍历解耦的目的。 集合如何获得一个迭代器:集合要具有iterator 方法需要实现iterable接口,要自定义一个迭代器内部类,类需要实现Iterator接口; iterator方法: public Iterator&amp;amp;amp;amp;lt;E&amp;amp;amp;amp;gt; iterator() { ...
Java迭代器Iterator的remove()方法的使用
遍历Java集合(Arraylist,HashSet...)的元素时,可以采用Iterator迭代器来操作 Iterator接口有三个函数,分别是hasNext(),next(),remove()。 今天浅谈remove函数的作用 官方解释为: Removes from the underlying collection the last element returned by this ...
Java 中list集合 通过Iterator方法迭代数组
Java 中list集合 通过Iterator方法迭代数组
Iterator和ListIterator的不同使用方法
我们在使用List,Set的时候,为了实现对其数据的遍历,我们经常使用到了Iterator(跌代器)。使用跌代器,你不需要干涉其遍历的过程,只需要每次取出一个你想要的数据进行处理就可以了。 但是在使用的时候也是有不同的。List和Set都有iterator()来取得其迭代器。对List来说,你也可以通过listIterator()取得其迭代器,两种迭代器在有些时候是不能通用的,Iterator和L
Java 016 集合 List子类(ArrayList、Vector、LinkedList)、泛型、增强for、可变参数
知识点梳理 心得体会 小知识点 1.泛型是一种参数化类型,相当于把类型作为参数传递 2.泛型&amp;amp;lt;&amp;amp;gt;里面必须是引用类型 3.当泛型被明确后,左右两边数据类型必须一致 ...
Java中迭代器Iterator的使用Collection接口(list和set)和Map接口中
Java中迭代器Iterator的使用Java集合类中Map接口下的相关类并没有像Collection接口的相关类一样实现get()方法,因此在要实现遍历输出的场景中没法直接用get()方法来取得对象中的数据,但Java本身提供了另一种遍历数据的方法,即用Iterator迭代器,虽然Iterator可以用来遍历读取数据,但它本质上不是一种方法,它只是一种设计模式,它是一个对象,一个“轻量级”的对象...
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 java迭代器学习 关于java培训班