您现在的位置是:首页 > 正文

ListIterator系列表迭代器演示

2024-04-01 03:41:19阅读 1

Iterator和ListIterator主要区别有:

一、ListIterator有add()方法,可以向List中添加对象,而Iterator不能。

二、ListIterator和Iterator都有hasNext()和next()方法,可以实现顺序向后遍历。但是ListIterator有hasPrevious()和previous()方法,可以实现逆向(顺序向前)遍历。Iterator就不可以。

三、ListIterator可以定位当前的索引位置,nextIndex()和previousIndex()可以实现。Iterator 没有此功能。

四、都可实现删除对象,但是ListIterator可以实现对象的修改,set()方法可以实现。Iterator仅能遍历,不能修改。因为ListIterator的这些功能,可以实现对LinkedList等List数据结构的操作。

import java.util.LinkedList;
import java.util.List;
import java.util.ListIterator;

public class TestListIterator
{
 public static void main(String args[])
 {
  TestListIterator tliterator=new TestListIterator();
  List<String> list=new LinkedList<String>();
  tliterator.initial(list);//初始化这个链接表
  ListIterator<String>  li=list.listIterator();//将该链接表转化为ListIterator

  //下面的代码进行ListIterator对象li的各种功能检测
  //顺序输出迭代器中的元素
  while(li.hasNext())
  {System.out.print(li.next().toString()+" ");}

  //验证add方法,给li添加两个元素
  li.add("元素五");
  li.add("元素六");

  System.out.println();//产生换行操作

  //通过使用ListIterator的特有方法hasPrevious与previous实现List的元素
  //逆序输出
  for(String str;li.hasPrevious();)
  {System.out.print(li.previous().toString()+" ");}

  System.out.println();//产生换行操作

  //顺序输出li迭代器中现有的元素
  while(li.hasNext())
  {System.out.print(li.next().toString()+" ");}

  System.out.println();//产生换行操作

  //通过使用ListIterator的set方法来改变li中的元素
  for(String str;li.hasPrevious();)
  {
   str=li.previous().toString();
   li.set(str.replaceAll("元素","元素编号"));
  }

  //顺序输出li迭代器中现有的元素
  while(li.hasNext())
  {System.out.print(li.next().toString()+" ");}
 
 }
 //初始化List方法
 public void initial(List<String> list)
 {
  list.add("元素一");
  list.add("元素二");
  list.add("元素三");
  list.add("元素四");
 }
}

 

 

网站文章

  • Android多媒体技术:使用MediaPlayer实现音频与视频播放

    本文介绍了如何使用Android的多媒体技术中的MediaPlayer类来实现音频和视频的播放。在Android应用程序开发中,多媒体播放是一个常见的需求,而Android提供了许多内置的类和API来...

    2024-04-01 03:40:39
  • 现在才开始准备考研,还来得及吗?

    现在才开始准备考研,还来得及吗?

    诶~其实这样的同学并不少,要不也不会这么多人讨论啦!觉得方法总比困难多,所以今天就来告诉大家,现在准备考研,我们该如何复习呢?首先以下这种想法不可取君君给大家以下五点建议:1、梳理考点掌握知识体系在考...

    2024-04-01 03:40:31
  • 四平方和(Python实现)

    四平方和(Python实现)

    python算法题-四平方和

    2024-04-01 03:40:24
  • 谷歌浏览器密码导入导出

    谷歌浏览器密码导入导出

    密码导出:密码导入:Chrome浏览器默认不百导入密码,需要先在浏度览器中输入chrome://flags/#password-import-export,找到Password import,将Disable改成Enable。如下然后通过刚才的方式进入导入操作...

    2024-04-01 03:40:16
  • shell作业与答案

    cat读取文件,pwd当前用户位置,passwd密码,who用户,type指定命令的路径,:空操作符 1、用shell命令查看/home目录下的可执行文件。 ls -rlt 2、改变桌面背景。 3、改变info这个文件的权限,原先为-rw-r—r--,用shell命令增加可执行权限。 chmod 755 info 4、选择一个磁盘分区,对其进行挂载,然后访问其中内容,之后对其卸载。

    2024-04-01 03:39:36
  • Java 虚拟机中的存储的理解 堆栈 GC

    栈 主要存放基本类型数据和对象的引用 堆 主要存放对象实体 新生带(New generation)使用的垃圾收集器叫MninorGC,新生代由Eden Space和两块相同大小的Survivor Space(FromSpace和ToSpace)组成,后两者主要用于Minor GC时的对象复制。 老年带(Old generation)使用的垃圾收集器叫FullGC ,当新生代中

    2024-04-01 03:39:23
  • R语言 Bagging回归预测模型

    Bagging(Bootstrap aggregating)是一种常用的集成学习方法,通过对训练数据进行有放回的自助采样,构建多个基本模型,并对它们的预测结果进行组合来提高模型的稳定性和泛化能力。将数...

    2024-04-01 03:38:41
  • div嵌套布局

    div 横向布局 display:inline

    2024-04-01 03:38:33
  • 使用Pfsense+Snorby构建入侵检测系统

    使用Pfsense+Snorby构建入侵检测系统

    0×00 背景 不要抱有侥幸心理,其实有只眼睛一直在监视你的一举一动。 黑客攻击是不可避免的,常在江湖飘,哪有不被黑(谁也不敢说自己的网络是绝对安全的)。被黑了怎么办?肯定是第一时间修复漏洞和清除后门啦!该怎么修复漏洞了?漏洞又在那里了?这个时候研究IDS的人就出来了: IDS: 全称入侵检测系统。专业上讲IDS就是依照一定的安全策略,通过软、硬件,对网络、系统的运行状况进行监视,尽可

    2024-04-01 03:38:28
  • vue-pdf使用及遇到的问题总结,ios使用vue-pdf会有白屏的bug

    vue-pdf使用及遇到的问题总结,ios使用vue-pdf会有白屏的bug

    vue-pdf使用及遇到的问题总结,vue-pdf-sign

    2024-04-01 03:37:50