您的位置:首页 > 职场人生

黑马程序员——JAVA基础------集合框架(三)----Iterator

2015-07-23 21:49 751 查看
——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——

一、Iterator接口

Iterator 接口是Java集合框架的成员,但它与 Collection 系列、Map 系列的集合不一样:Collection 系列集合、Map 系列集合主要用于盛装其他对象,而Iterator 则主要用于遍历(即迭代访问)Collection 集合中的元素,Iterator 对象也被称为迭代器。

Iterator 接口隐藏了各种Collection 实现类的底层细节,向应用程序提供了遍历 Collection 集合元素的统一编程接口。Iterator 接口里定义了如下3个方法。

boolean hasNext()
:如果被迭代的集合元素还没有被遍历完,则返回ture

Object next()
:返回集合里的下一个元素

void remove()
:删除集合里上一次 next 方法返回的元素

代码演示:

package com.joe.list;

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

/**
* Iterator思路:1、获取迭代器;2、判断是否有下一个元素;3、有,输出;没有,返回
* Iterator步骤:
* 1、Iterator<T> it = 集合.iterator();
* 2、while(it.hasNext()){
* 3、   System.out.println(it.next())
*      }
* @author joe
*
*/

public class IteratorDemo {
public static void main(String[] args) {
// 创建集合,添加元素
ArrayList<String> arr = new ArrayList<String>();
arr.add("wo ai xue xi java");
arr.add("wo ai xue xi java");
arr.add("wo ai xue xi java");
arr.add("wo ai xue xi java");
// 获取arr集合对应的迭代器
Iterator<String> it = arr.iterator();
// 遍历输出
while (it.hasNext()) {
System.out.println(it.next());
}
}

}


###二、ListIterator

public interface ListIterator<E> extends Iterator<E>


系列表迭代器,允许程序员按一方向遍历列表、迭代期间修改列表,并获得迭代器在列表中的当前位置。



代码演示:

package com.joe.list;

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

public class ListIteratorDemo {

/**
* 使用ListIterator迭代器遍历集合
*
* @param list
*/
public static void listIterator(List<String> list) {
ListIterator<String> iter = list.listIterator();

// 从前往后遍历
while (iter.hasNext()) {
System.out.println(iter.next());
}
System.out.println("------------------------");

// 从后往前遍历
while (iter.hasPrevious()) {
System.out.println(iter.previous());
}

}

public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("中国好声音");
list.add("爸爸去哪儿");
list.add("奔跑吧兄弟");

listIterator(list);
}

}


三、其他遍历集合的方法

1、Enumeration

public interface Enumeration<E>


实现 Enumeration 接口的对象,它生成一系列元素,一次生成一个。连续调用 nextElement 方法将返回一系列的连续元素。

注:此接口的功能与 Iterator 接口的功能是重复的。此外, Iterator 接口添加了一个可选的移除操作,并使用较短的方法名。新的实现应该优先考虑使用 Iterator 接口而不是 Enumeration 接口。

boolean hasMoreElements() 判断是否有下一个元素

E nextElement() 取出当前元素

2、foreach

代码演示:

package com.joe.list;

import java.util.Collection;
import java.util.HashSet;
import java.util.Set;

public class ForeachDemo {

/**
* 使用foreach迭代集合
*/
public static void foreach(Collection<String> c) {

for (String s : c) {
System.out.println(s);
}

}

public static void main(String[] args) {

Set<String> set = new HashSet<String>();
set.add("爸爸去哪儿");
set.add("我是歌手");
set.add("中国好声音");
foreach(set);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java iterator