java 迭代器_如何在Java中使用迭代器Iterator? - Break易站_weixin_39830688的博客-程序员宅基地

技术标签: java 迭代器  

Java 集合框架

'Iterator'是一个属于集合框架的接口。它允许我们遍历集合,访问数据元素并删除集合的数据元素。

java.util包具有 公共接口Iterator并包含三个方法:

boolean hasNext():如果Iterator有更多要迭代的元素,则返回true。

Object next():它返回集合中的下一个元素,直到hasNext()方法返回true。如果没有下一个元素,则此方法抛出'NoSuchElementException'。

void remove():它删除集合中的当前元素。如果在调用next()之前调用此函数,则此方法抛出'IllegalStateException'。

// Java code to illustrate the use of iterator

import java.io.*;

import java.util.*;

class Test {

public static void main(String[] args)

{

ArrayList list = new ArrayList();

list.add("A");

list.add("B");

list.add("C");

list.add("D");

list.add("E");

// Iterator to traverse the list

Iterator iterator = list.iterator();

System.out.println("List elements : ");

while (iterator.hasNext())

System.out.print(iterator.next() + " ");

System.out.println();

}

}

输出:

List elements :

A B C D E

ListIterator

Java中的“ListIterator”是一个迭代器,它允许用户在两​​个方向上遍历Collection。它包含以下方法:

void add(Object object):它在next()函数返回的元素之前插入对象。

boolean hasNext():如果列表具有下一个元素,则返回true。

boolean hasPrevious():如果列表具有前一个元素,则返回true。

Object next():返回列表的下一个元素。如果列表中没有下一个元素,它会抛出'NoSuchElementException'。

Object previous():返回列表的上一个元素。如果没有前一个元素,它会抛出'NoSuchElementException'。

void remove():它从列表中删除当前元素。如果在调用next()或previous()之前调用此函数,则抛出'IllegalStateException'。

// Java code to illustrate the use of ListIterator

import java.io.*;

import java.util.*;

class Test {

public static void main(String[] args)

{

ArrayList list = new ArrayList();

list.add("A");

list.add("B");

list.add("C");

list.add("D");

list.add("E");

// ListIterator to traverse the list

ListIterator iterator = list.listIterator();

// Traversing the list in forward direction

System.out.println("Displaying list elements in forward direction : ");

while (iterator.hasNext())

System.out.print(iterator.next() + " ");

System.out.println();

// Traversing the list in backward direction

System.out.println("Displaying list elements in backward direction : ");

while (iterator.hasPrevious())

System.out.print(iterator.previous() + " ");

System.out.println();

}

}

输出:

Displaying list elements in forward direction :

A B C D E

Displaying list elements in backward direction :

E D C B A

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_39830688/article/details/114396301

智能推荐

关于SAP S/4HANA里ABAP源代码管理功能的增强_汪子熙的博客-程序员宅基地

关于SAP S/4HANA里ABAP源代码管理功能的增强和以前老的ECC里的版本管理功能相比,S/4HANA里增添了两个按钮:Fetch Remote Version和Search:前者可以直接将该系统指定的源代码同QA或者生产系统同样位置的代码直接进行比较:以及同时打开两个ABAP editor查看两个不同版本的异同:其实就是把Jerry之前这篇文章里介绍的功能也集成到ABAP源代码版本管理环境了:同时开左右两个SAPGUI编辑器显示同一段ABAP代码要获取更多Jerry的原创文章,请

java去除符号和字母_java 字符串中去除 数字 字母 符号&&N*1*senten.Length=>M*M_weixin_39935257的博客-程序员宅基地

字符串中去除 数字 字母 符号String str = "今天1@天%。气^64很?不?错.心情6666很好。。。。。";String str1 = str.replaceAll("[,。、|~!@#¥;【》‘“”、】《·\\-?:,:{}%……&*()\\=—+ A-Za-z0-9]","").trim().equals("");N14=》M*Mpublic static void p...

1128PAGETABLE SEGMENT HEADER损坏恢复_weixin_33736048的博客-程序员宅基地

[20161128]PAGETABLE SEGMENT HEADER损坏恢复2.txt --昨天在做段头损坏测试时,发现一个奇特现象,我破坏了段头,但是我select依旧能正常访问,检查发现我在数据缓存相应的块是OK的, --虽然我破坏了数据文件中相应表的段头,但是数据缓存的信息是好的,所以能正常访问,而我执行alt...

CS和BS的区别_cs系统_宾宾叔叔的博客-程序员宅基地

1.CS和BS的概念CS,即C/S(Client/Server)结构,是一种客户机和服务器结构。cs也是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。BS即Browser/Server(浏览器/服务器)结构,就是只安装维护一个服务器,而客户端采用浏览器运行软件。2.CS和BS区别1.开发维护成本cs开发维护成本高于bs。因为因为采用cs结构时,对于不同的客户端要开发不同的程序,而且软件安装调试和升级都需要在所有

redis数据库使用01、安装配置 windows 和 redis所有数据类型的基本使用_鞍-的博客-程序员宅基地

1、关系型数据库 非关系型数据库--关系型数据库:--非关系型数据库:nosql == not only lqs --举例:redis || mongodb || hbase hadoop || cassandra hadoop --没有通用 api 和 语法,每一种非关系型数据库都有自己擅长的场景 --不支持sql语句 --基本形式 k-v --关系型和非关系型的区别: --关系型数据库支持非常复杂的数据关系,非关系型使用的是 kv 形式所以关系清晰

mysql 在线连接_MySQL 连接_weixin_39953740的博客-程序员宅基地

使用 PHP 脚本连接 MySQLPHP 提供了 mysqli_connect() 函数来连接数据库。该函数有 6 个参数,在成功链接到 MySQL 后返回连接标识,失败返回 FALSE 。语法mysqli_connect(host,username,password,dbname,port,socket);参数说明:参数描述host可选。规定主机名或 IP 地址。username可选。规...

随便推点

wps怎么检查莫名空格_拯救秃头:送你1套高速WPS教程,以后再也不加班了_weixin_39731845的博客-程序员宅基地

大家好,我是爱高校的班班,专门为你们做各种学习训练营服务(个人微信:yikeshare012,可随时添加我咨询任何问题)。说起WPS/Office系列软件,你最头疼的地方是哪里?是软件的某些功能不会用?是公式太复杂?是动画效果不会做?还是长文档排版太难?都!不!是!你最头疼的地方,其实是——当你要用到某个功能的时候,你想不起来;要用到某个公式的时候,你在网上搜不到答案。比如我现在要给一个...

大数据工程师体系职业路径全解_大数据架构师Evan的博客-程序员宅基地

这是我的第26篇原创今天给大家分享一下大数据体系的职业,以及可能的发展路径。大数据体系全貌组织架构的原则是因事设岗,因岗定人。换句话说,有什么问题,决定了做什么事情,决定了需要什么样的组织...

解决CSR 8510 A10蓝牙适配器驱动安装不正常问题_csr8510 a10蓝牙驱动_gcygeeker的博客-程序员宅基地

之前在WIN7下安装完CSR 8510USB蓝牙适配器官方驱动后,蓝牙连接手机一直显示Csrbtport_Enumerated_Device_00驱动安装失败: 手动安装出现”名称已用作服务名或服务显示名”: 造成原因:多次安装不同版本蓝牙驱动造成服务名占用,造成A2DP无法正确使用在网上查各种资料并进行了各种尝试后终于找到一个完美的解决办法。 1. 把配对好的蓝牙设备都删除 ...

编程猫python讲师面试_你为什么从编程猫离职?_weixin_39793576的博客-程序员宅基地

工作内容的原因吧。职位是python老师,以为是开个直播线上教学,其实并不是,要一对多而且每个学生的进度不一样,所以刚开始工作的话熟课这方面要花大功夫。并且上课时一定时间内必须回复学生,培训时一对一都感觉有点难顶,一对多感觉压力会很大。然后课程结束学生会有评价,如果被差评会有麻烦的。再就是上班时间,虽然周内(周一到周五)基本都是下午两点上班晚上九点下班,这点比较舒服,并且周内还有随机两天是休息的,...

推荐文章

热门文章

相关标签