我们在使用List,Set的时候,为了实现对其数据的遍历,我们经常使用到了Iterator(迭代器)。使用迭代器,你不需要干涉其遍历的过程,只需要每次取出一个你想要的数据进行处理就可以了。
但是在使用的时候也是有不同的。List和Set都有iterator()来取得其迭代器。对List来说,你也可以通过listIterator()取得其迭代器,两种迭代器在有些时候是不能通用的,Iterator和ListIterator主要区别在以下方面:
1. ListIterator有add()方法,可以向List中添加对象,而Iterator不能
2. ListIterator和Iterator都有hasNext()和next()方法,可以实现顺序向后遍历,但是ListIterator有hasPrevious()和previous()方法,可以实现逆向(顺序向前)遍历。Iterator就不可以。
3. ListIterator可以定位当前的索引位置,nextIndex()和previousIndex()可以实现。Iterator没有此功能。
4. 都可实现删除对象,但是ListIterator可以实现对象的修改,set()方法可以实现。Iierator仅能遍历,不能修改。
因为ListIterator的这些功能,可以实现对LinkedList等List数据结构的操作。其实,数组对象也可以用迭代器来实现。
public static void iterManipulation(List a){
ListIterator it = a.listIterator();
for(int i=1; i<=a.size();i++){
System.out.println(it.nextIndex()+"--->"+it.next());
}
System.out.println("--------------------------------");
while(it.hasPrevious()){
System.out.println(it.previousIndex()+"------>"+it.previous());
}
}
结果:
0--->ALGERIA
1--->ANGOLA
2--->BENIN
3--->BOTSWANA
4--->BURKINA FASO
5--->BURUNDI
6--->CAMEROON
7--->CAPE VERDE
8--->CENTRAL AFRICAN REPUBLIC
9--->CHAD
--------------------------------
9------>CHAD
8------>CENTRAL AFRICAN REPUBLIC
7------>CAPE VERDE
6------>CAMEROON
5------>BURUNDI
4------>BURKINA FASO
3------>BOTSWANA
2------>BENIN
1------>ANGOLA
0------>ALGERIA
分享到:
相关推荐
java 1. 泛型 2. 队列 3. 栈 4. Iterator 和 ListIterator迭代器
Java 中 Iterator 和 ListIterator 实例详解 Iterator 和 ListIterator 是 Java 中两个重要的迭代器接口,用于遍历集合中的元素。下面我们将详细介绍这两个接口的作用范围、关系、方法和使用实例。 Iterator 和 ...
Iterator接口和ListIterator接口的主要区别在于: * Iterator接口只能向前迭代,而ListIterator接口可以向前和向后迭代。 * Iterator接口不支持删除和添加元素,而ListIterator接口支持删除和添加元素。 * Iterator...
JAVA中ListIterator和Iterator详解与辨析 ListIterator和Iterator是...ListIterator和Iterator都是JAVA集合中重要的迭代器,但是它们之间存在着一些关键的区别。在选择使用哪种迭代器时,需要根据实际情况进行选择。
Iterator接口和ListIterator接口的使用可以带来很多便利,例如,使用Iterator接口可以遍历集合中的元素,而不管集合的具体实现类型,同时也可以使用ListIterator接口来控制迭代器的行为,例如,添加或删除元素。...
10. Iterator 和 ListIterator 之间有什么区别? Iterator是通用的集合遍历接口,适用于各种集合,包括Set和List。它提供了基本的遍历、检查和删除元素的功能。而ListIterator是专门为List接口设计的,除了具备...
`ListIterator`还提供了在遍历过程中添加、修改和删除元素的功能,使得对列表的操作更加灵活。本文将详细介绍如何使用`ListIterator`进行这些操作。 ### 1. `ListIterator`的基本用法 要获取`List`的`ListIterator...
对于需要双向遍历或在List中进行插入和删除操作的情况,Java提供了`ListIterator`接口,它是`Iterator`的子接口。`ListIterator`提供了`hasPrevious()`、`previous()`、`add()`和`set()`等额外的方法,增强了对List...
17. **Iterator 和 ListIterator 区别**:Iterator 只能向前遍历;ListIterator 支持双向遍历,还可以添加和删除元素。 18. **Array 和 ArrayList**:Array 是静态的,大小固定,访问快;ArrayList 动态增长,支持...
总之,Iterator作为Java中处理集合数据的核心工具之一,掌握其基本用法和进阶特性,对于提高代码质量和编程效率具有不可忽视的作用。无论是基础的遍历操作,还是高级的双向迭代和元素操作,Iterator都提供了强大的...
6. **`ListIterator`与`Iterator`的区别** `ListIterator`是`Iterator`的一个子接口,专门为`List`类型的集合提供服务。除了`Iterator`的方法,`ListIterator`还提供了`hasPrevious()`、`previous()`、`nextIndex()...
通过本文的学习,读者将能够更好地理解和掌握`Iterator`的用法。 #### 一、基本概念与使用方法 ##### 1. `Iterator`接口简介 `Iterator`接口定义了用于访问集合元素的方法,包括获取下一个元素、检查是否还有更多...
添加、删除操作的时间复杂度为O(N),get、set、iterator和listIterator操作的时间复杂度为常数时间。 三、容量 ArrayList的容量是可调整的,默认初始化为10,可以自动增长。可以通过ensureCapacity()方法提前增加...
SQL语句的内联外联经典面试题 SQL语句的内联外联是一种常见的数据库查询技术,它可以根据不同的...Iterator和ListIterator是Java中两个常见的迭代器,Iterator只能用来遍历序列中的元素,而ListIterator可以双向移动。
该size,isEmpty,get,set,iterator和listIterator操作在固定时间内运行。 add操作以摊余常数运行 ,即添加n个元素需要O(n)个时间。 所有其他操作都以线性时间运行(粗略地说)。 与LinkedList实施相比,常数...
什么是迭代器iterator和ListIterator的区别Collection和Collections的区别Comparable和Compartor接口是干什么,列出区别heap 和stack 有什么区别如何确保一个集合不会被修改CollectionListArray与ArrayList有什么...
Iterator 和 ListIterator 的区别 Iterator 和 ListIterator 都是 Java Collections 框架中的迭代器接口,但是它们在实现和应用场景上有所不同。Iterator 是 Java Collections 框架中的基本迭代器接口,提供了基本...
在Java编程中,`ListIterator` 是一个比普通 `Iterator` 更加强大的迭代器,它专用于列表接口的实现类,如 `ArrayList`、`LinkedList` 等。`ListIterator` 提供了更多的操作方法,使得我们可以方便地在列表中进行前...
9. **迭代器的变种**:除了基本的迭代器,还有一些变种,如`ListIterator`,它提供了向前和向后移动的能力,还可以插入元素。 10. **泛型与迭代器**:在支持泛型的语言中,如Java,迭代器可以指定元素类型,从而...