java基础27---ListIterator方法

本文介绍了Java中的ListIterator接口,详细阐述了其双向移动、获取元素索引、替换元素和添加元素等核心功能,并提供了运行示例。
摘要由CSDN通过智能技术生成

ListIterator接口定义如下:

Interface ListIterator<E>{}

包含的方法有:在这里插入图片描述
由以上定义我们可以推出ListIterator可以:

(1)双向移动(向前/向后遍历).

(2)产生相对于迭代器在列表中指向的当前位置的前一个和后一个元素的索引.

(3)可以使用set()方法替换它访问过的最后一个元素.

(4)可以使用add()方法在next()方法返回的元素之前或previous()方法返回的元素之后插入一个元素.

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



public class Encap {
public static void main(String args[]){

		ArrayList<String> name = new ArrayList<>();//新建一个ArrayList,命名为name
		name.add("Mark");
		name.add("Susan");
		name.add("Lisa");
		name.add("Andy");
		System.out.println("Before iterator :" + name);//输出ArrayList中的值
		
		ListIterator<String> it = name.listIterator();//调用了name的listIterator方法,并使ListIterator类型的it指向,也就是说ListIterator类型的it指向
		//了ArrayList容器,通过调用ArrayList的listIterator方法来进行容器内的遍历
		while(it.hasNext()){//判断容器中是否还有元素,如果有,则输出元素,当前元素前一个元素的索引,当前元素后一个元素的索引
			System.out.println(it.next() + "," + it.previousIndex() + "," + it.nextIndex());
		}
		
		while(it.hasPrevious()){//此时指针已经到了最后一个元素,判断指针前是否有元素,若有,则往前遍历
			System.out.print(it.previous() + " ");
		}//循环结束时,指针又回到第一个元素
		System.out.println();//输出换行
		
		it = name.listIterator(1);//调用listIterator(n)方法创建一个一开始就指向列表索引为n的元素处的ListIterator,it指向了listIteror的第二个元素Susan
		while(it.hasNext()){//判断是否还有元素
			String t = it.next();//下一个元素(第一次为Susan)赋值给t
			System.out.println("Now iterator :" + t);//输出Susan
			if("Lisa".equals(t)){
				it.set ("Silly");//如果下一个元素等于Lisa,则置为Silly
			}else{
				it.set( "Liu");//如果下一个元素不等于Lisa,则置为Liu
			}
			
		}
		System.out.println("After iterator :" + name);//最后输出ArrayList里的元素
		
		
		
		
		
		
	}
	
}

运行结果:

Before iterator :[Mark, Susan, Lisa, Andy]
Mark,0,1
Susan,1,2
Lisa,2,3
Andy,3,4
Andy Lisa Susan Mark 
Now iterator :Susan
Now iterator :Lisa
Now iterator :Andy
After iterator :[Mark, Liu, Silly, Liu]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值