从头认识java-9.6 ListIterator的双向迭代

这一章节我们来简单讨论一下ListIterator。

ListIterator主要就是补充了Iterator只能向后的问题,在ListIterator里面可以向前移动。

package com.ray.ch09;

import java.util.ArrayList;
import java.util.ListIterator;

public class Test {
	public static void main(String[] args) {
		ArrayList<Integer> arrayList = new ArrayList<Integer>();
		for (int i = 0; i < 10; i++) {
			arrayList.add(i);
		}
		ListIterator<Integer> iterator = arrayList.listIterator();
		while (iterator.hasNext()) {
			Integer rtn = iterator.next();
			System.out.print(rtn);
		}
		System.out.println();
		while (iterator.hasPrevious()) {
			Integer rtn = iterator.previous();
			System.out.print(rtn);
		}
	}
}

输出:

0123456789
9876543210

注意:在使用iterator.previous()前必须检测iterator.hasPrevious()的真假,不然在第一个元素还没有压入迭代器的时候,会抛异常。

总结:这一章节简单讲述了ListIterator的双向迭代。

这一章节就到这里,谢谢。

-----------------------------------

目录

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-07-30 13:48:58

从头认识java-9.6 ListIterator的双向迭代的相关文章

java 15 -7 ListIterator 的特有方法

列表迭代器:  ListIterator listIterator():List集合特有的迭代器 该迭代器继承了Iterator迭代器,所以,就可以直接使用hasNext()和next()方法. 特有功能: A: boolean hasPrevious():判断是否有元素  B:Object previous():获取上一个元素 注意:ListIterator可以实现逆向遍历,但是必须先正向遍历,才能逆向遍历,所以一般无意义,不使用. 1 import java.util.ArrayList;

[Java]#从头学Java# Java大整数相加

重操旧业,再温Java,写了个大整数相乘先回顾回顾基本知识.算法.效率什么的都没怎么考虑,就纯粹实现功能而已. 先上代码: 1 package com.tacyeh.common; 2 3 public class MyMath { 4 5 public static String BigNumSum(String... n) { 6 int length = n.length; 7 StringBuilder result = new StringBuilder(); 8 //这里判断其实不需

Java LinkedList的ListIterator

Java LinkedList的ListIterator @author ixenos ListIterator<E>是继承自Iterator<E>的接口 故,ListIterator注意点: 1.迭代器不存储所有元素的引用,只有两个指针,一个指向上一个返回得到的元素,另一个下一个未涉足的元素: 2.迭代开始前先同步内外modCount,迭代过程中检查是否同步,如果外部结构改变,则迭代快速失败(fast-fails机制): 3.ListIterator可以算半个LinkedList

从头学Java【3】——之命名方法

1.命名法 对于变量.数组.方法/函数.类和对象,如何规范地进行命名至关重要,尤其是当程序规模扩大,变量数量激增的情况下.比较著名的命名规则: (1)匈牙利命名法 这种命名方法是由Microsoft程序员查尔斯·西蒙尼(Charles Simonyi) 提出的,C语言中常用此种命名法.标识符的名字以一个或者多个小写字母开头作为前缀:前缀之后的是首字母大写的一个单词或多个单词组合,该单词要指明变量的用途.例如:lpszStr, 表示指向一个以'\0'结尾的字符串(sz)的长指针(lp)变量. (2

从头学Java【4】——之重载及构造方法

1.方法的重载:实现相同功能使用相同方法名: 2.构造方法: 作用:定义对象时给对象的各个属性赋初值: 特点: (1)构造方法名与类名相同:没有返回值和返回类型: (2)给对象属性赋初值时,是通过参数传递实现: (3)构造方法是在创造对象时,跟在new后面执行,不能通过对象或者类来调用构造方法: (4)如果定义类时既给字段进行了赋初值, 也有构造方法, 在创建对象时是先给成员变量赋初值,再执行构造方法的方法体: (5)如果程序员没有定义构造方法,系统会默认一个无参数的构造方法: (6)当程序员定

从头学Java【3】——几个重要的关键字汇总

几个重要的关键字汇总(a表示怎么用?b表示什么时候使用?c表示注意事项) (1)abstract关键字 a.可以修饰类.方法 修饰类时:不能实例化对象:必须被子类继承: 修饰方法时:没有方法体:必须写在抽象类中:必须被子类重写,若子类不重写,也声明为抽象类: b.一般现实中不存在的事物使用抽象类:父类方法,各子类实现方式各不相同时,则此方法在父类中声明为抽象方法; c.不能与这些关键字一起使用:private.static.final:不能修饰构造方法: (2)static关键字 a.可以修饰成

JAVA中的for-each循环与迭代

在学习java中的collection时注意到,collection层次的根接口Collection实现了Iterable<T>接口(位于java.lang包中),实现这个接口允许对象成为 "foreach" 语句的目标,而此接口中的唯一方法,实现的就是返回一个在一组 T 类型的元素上进行迭代的迭代器. 一.迭代器Iterator 接口:Iterator<T> 1 public interface Iterator<E>{ 2 3 boolean h

细说java中Map的两种迭代方式

以前对java中迭代方式总是迷迷糊糊的,今天总算弄懂了,特意的总结了一下,基本是算是理解透彻了. 1.再说Map之前先说下Iterator: Iterator主要用于遍历(即迭代访问)Collection集合中的元素,Iterator也称为迭代器.它仅仅只有三个方法:hasNext(),next()和remove() hasNext():如果仍有元素可以迭代,则返回 true.(换句话说,如果 next 返回了元素而不是 抛出异常,则返回 true). next():返回迭代的下一个元素. re

Java设计模式(学习整理)---迭代模式

设计模式之Adapter(适配器) 1.定义: 将两个不兼容的类纠合在一起使用,属于结构型模式,需要有Adaptee(被适配者)和Adaptor(适配器)两个身份. 2.为何使用? 我们经常碰到要将两个没有关系的类组合在一起使用,第一解决方案是:修改各自类的接口,但是如果我们没有源代码,或者,我们不愿意为了一个应用而修改各自的接口. 怎么办? 使用Adapter,在这两种接口之间创建一个混合接口(混血儿). 3.如何使用? 实现Adapter方式,其实"think in Java"的&