推广 热搜: csgo  vue  angelababy  2023  gps  新车  htc  落地  app  p2p 

JAVA中ListIterator和Iterator详解与辨析

   2023-07-31 网络整理佚名1740
核心提示:在使用java集合的时候,都需要使用。但是java集合中还有一个迭代器,在使用List、、和的时候可以使用。():返回列表中所需位置前面元素的索引():从列表中删除next()或()返回的最后一个元素(有点拗口,意思就是对迭代器使用()方法时,删除指向位置后面的元素;当对迭代器使用()方法时,删除指向位置前面的元素)

在使用java集合的时候,需要用到它们。 但是java集合中还有一个迭代器,可以在使用List、、、时使用。 这两个迭代器有什么区别? 下面我们来详细分析一下。 这里需要明确一点,迭代器指向的位置是元素之前的位置,如下图所示:

这里假设集合List由四个元素List1、List2、List3和List4组成。 当使用it = List.()语句时,迭代器it指向的位置就是上图中指向的位置。 当语句 it.next() 被执行后,迭代器指向的位置就移回到上图指向的位置。

首先看看迭代器有哪些方法。

迭代器中包含的方法有:

():如果迭代器指向位置后面有元素,则返回true,否则返回false

next():返回集合中指向位置之后的元素

():删除集合中指向位置之后的元素

迭代器中包含的方法有:

add(E e):将指定元素插入到列表中,插入位置在迭代器当前位置之前

():向前遍历列表时,如果列表迭代器后面有元素,则返回true,否则返回false

():如果反向遍历列表,并且列表迭代器前面有元素,则返回true,否则返回false

next():返回列表中指向位置之后的元素

():返回列表中所需位置之后的元素的索引

():返回列表中指向位置之前的元素

():返回列表中所需位置之前的元素的索引

():从列表中删除next()或()返回的最后一个元素(有点拗口,意思是在迭代器上使用()方法时,删除指向位置后面的元素;使用()时迭代器上的方法,删除指向位置之前的元素)

set(E e):将列表中next()返回的最后一个元素或()返回的最后一个元素更改为指定元素e

一、相同点

两者都是迭代器,当需要遍历集合中的元素时,都可以使用这两种迭代器,而不会干扰遍历过程。

二元差异

1、使用范围不同,可以适用于所有集合、Set、List、Map以及这些集合的子类型。 相反,它只能用于 List 及其子类型。

2.有一个add方法,可以向List中添加对象,但是不能。

3.有()和next()方法,可以实现顺序向后遍历,但有()和()方法,可以实现反向(顺序向前)遍历。 不能。

4、可以定位当前索引的位置,()和()可以实现。 没有这样的功能。

5、可以实现删除操作,但可以实现对象的修改,可以实现set()方法。 只能遍历,不能修改。

三:及使用示例

用法:

package com.collection;
import java.util.linkedList;
import java.util.List;
import java.util.ListIterator;

public class ListIteratorTest {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		List staff = new linkedList<>();
		staff.add("zhuwei");
		staff.add("xuezhangbin");
		staff.add("taozhiwei");
		ListIterator iter = staff.listIterator();
		String first = iter.next();
		
		//删除zhuwei
		iter.remove();
		
		//把zhuwei改为simei
		//iter.set("simei");
		System.out.println("first:"+first);
		
		iter.add("xiaobai");
		
		//遍历List元素
		System.out.println("遍历List中元素,方法一:");
		for(String str : staff)
			System.out.println(str+"   ");
		
		iter = staff.listIterator();
		System.out.println("遍历List中元素,方法二:");
		while(iter.hasNext())
		{
			System.out.println(iter.next());
		}
	}
}

 
标签: 迭代器
反对 0举报 0 收藏 0 打赏 0评论 0
 
更多>同类资讯
推荐图文
推荐资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报
Powered By DESTOON