集合框架(Java)之Iterator和ListIterator

Iterator和ListIterator

在上两篇文章中,我们介绍了ArrayList和LinkedList

ArrayList是基于数组的数据结构,增删改查都依赖Index去完成。因此修改和查看效率高,增删涉及到数组的扩容,因此效率较低。

LinkedList是基于双向链表的数据结构,增删特别快,但改和查每次都需要遍历整个链表,因此效率低。


ArrayList的遍历

package com.evan.array_list;

import java.util.ArrayList;

public class Demo {

	public static void main(String[] args) {
		ArrayList<String> list = new ArrayList<String>();
		list.add("张三");
		list.add("李四");
		list.add("王五");
		list.add("赵六");
		
		for (int i = 0; i < list.size(); i++) {
			String value = list.get(i);
			System.out.println("value at " + i + " is :" + value);
		}
		
	}

}


 

这篇文章我们介绍另外一种遍历方式,就是迭代器。

Iterator

package com.evan.array_list;

import java.util.ArrayList;
import java.util.Iterator;

public class Demo {

	public static void main(String[] args) {
		ArrayList<String> list = new ArrayList<String>();
		list.add("张三");
		list.add("李四");
		list.add("王五");
		list.add("赵六");
		
//		for (int i = 0; i < list.size(); i++) {
//			String value = list.get(i);
//			System.out.println("value at " + i + " is :" + value);
//		}
		
		for (Iterator<String> iterator = list.iterator(); iterator.hasNext(); ) {
			String value = iterator.next();
			System.out.println("value is :" + value);
		}
	}

}

 Iterator常用方法:

  1. hasNext() 是否有下一个元素
  2. next() 获取下一个元素
  3. remove() 删除当前元素

Iterator可以作用于List、Set和Map集合上,可以用来获取元素以及删除元素,在LinkedList和Set中,只可以用Iterator进行遍历


在List的体系下,还有一种特有的迭代器 ListIterator

ListIterator相对于Iterator,还含有特有的函数

  1. hasNext() 是否有下一个元素
  2. hasPreview() 是否有上一个元素
  3. next() 获取下一个元素
  4. preview() 获取上一个元素
  5. add() 增加元素
  6. set() 重置元素
  7. remove() 删除元素
  8. nextIndex() 下一个标记
  9. previewIndex() 上一个标记
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值