java迭代器输入的结果_Java 迭代器 Iterator

迭代器模式

迭代器模式(Iterator Pattern)是 Java 和 .Net 编程环境中非常常用的设计模式。这种模式用于顺序访问集合对象的元素,不需要知道集合对象的底层表示。

迭代器模式属于行为型模式。

Java手册

java.lang

接口 Iterable

public interface Iterable

实现这个接口允许对象成为 "foreach" 语句的目标。

从以下版本开始:1.5

方法摘要

返回一个在一组 T 类型的元素上进行迭代的迭代器。

方法详细信息

iterator

Iterator iterator()

返回一个在一组 T 类型的元素上进行迭代的迭代器。返回:一个迭代器。

java.util

接口 Iterator

public interface Iterator

对 collection 进行迭代的迭代器。迭代器取代了 Java Collections Framework 中的 Enumeration。迭代器与枚举有两点不同:

迭代器允许调用者利用定义良好的语义在迭代期间从迭代器所指向的 collection 移除元素。

方法名称得到了改进。

方法摘要

boolean

如果仍有元素可以迭代,则返回 true。

返回迭代的下一个元素。

void

从迭代器指向的 collection 中移除迭代器返回的最后一个元素(可选操作)。

Iterator  是一个强大的工具,他可以迭代集合框架里面的所有子接口里实现的集合

迭代其实就是一种遍历的方式。

实例:

importjava.util.ArrayList;importjava.util.Iterator;importjava.util.List;importjava.util.ListIterator;public classIteratorDemo {public static voidmain(String[] args) {//用List接口的一个子类ArrayList进行实现

List list = new ArrayList<>();

list.add("老王");

list.add("老李");

list.add("老张");

list.add("老李");

list.add("老丁");

list.add("老孙");//下面我们开始遍历输出这个数组列表//1.for循环遍历

for(int i = 0; i < list.size(); i++) {

System.out.print(list.get(i)+ ", ");

}

System.out.println();//换行//2.foreach循环遍历这个数组

for(String s : list) {

System.out.print(s+ ", ");

}

System.out.println();//换行//3.迭代器遍历

/*** 迭代器的使用方法比较固定

* 首先创建一个迭代器

* 然后判断迭代器指向的列表有没有迭代的元素:it.hasNext()

* 如果有,就遍历出来:it.next()*/Iterator it =list.iterator();while(it.hasNext()) {

System.out.print(it.next()+ ", ");

}

System.out.println();//4.ListIterator 增强型迭代器

ListIterator Lit1 =list.listIterator();while(Lit1.hasNext()) {

System.out.print(Lit1.next()+ ", ");

}

System.out.println();/*** ListIterator与传统迭代器的区别

* 1.ListIterator不止可以向后访问,还可以向前访问

* 2.ListIterator可以修改集合里的元素*/

//ListIterator 从后向前遍历列表

ListIterator Lit2 =list.listIterator();while(Lit2.hasPrevious()) {

System.out.println(Lit2.previous()+ ", ");

}

System.out.println();//ListIterator 修改列表里面的元素

ListIterator Lit3 = list.listIterator(3);if(Lit3.hasPrevious()) {

Lit3.previous();

Lit3.set("cjj");

}

System.out.println(list+ " ");//通过迭代器自带的remove方法来移除当前在迭代的元素

Iterator it1 =list.iterator();//判断是否有下一个元素

if(it1.hasNext()){

it.remove();

}

System.out.println(list);

}

}

运行结果:

老王, 老李, 老张, 老李, 老丁, 老孙,

老王, 老李, 老张, 老李, 老丁, 老孙,

老王, 老李, 老张, 老李, 老丁, 老孙,

老王, 老李, 老张, 老李, 老丁, 老孙,

[老王, 老李, cjj, 老李, 老丁, 老孙]

[老王, 老李, cjj, 老李, 老丁]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值