栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

4、集合框架Itertor接口

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

4、集合框架Itertor接口

集合框架Itertor接口

1、集合输出
前面我们已经学习了集合的基本操作,很多情况下,我们需要把集合的内容进行输出,也
就是遍历集合。
遍历集合的方式有以下几种:
1、Iterator
2、 ListIterator
3、 Enumeration
4、 foreach
其中Iterator的使用率最高,在JDK1.5后新增的foreach也被大量使用。

2、Iterator
public interface Iterator
对 collection 进行迭代的迭代器。迭代器取代了 Java Collections framework 中的
Enumeration。

boolean hasNext()如果仍有元素可以迭代,则返回 true。
E next()返回迭代的下一个元素。
void remove()从迭代器指向的 collection 中移除迭代器返回的最后一个元素。

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

void add(E e)增加元素
boolean hasPrevious()判断是否有前一个元素
E previous()取出前一个元素
void set(E e)修改元素的内容
int previousIndex()前一个索引位置
int nextIndex()下一个索引位置

4、Enumeration
public interface Enumeration
实现 Enumeration 接口的对象,它生成一系列元素,一次生成一个。连续调用
nextElement 方法将返回一系列的连续元素。
注:此接口的功能与 Iterator 接口的功能是重复的。此外,Iterator 接口添加了一个可选的
移除操作,并使用较短的方法名。新的实现应该优先考虑使用 Iterator 接口而不是
Enumeration 接口。

boolean hasMoreElements()判断是否有下一个元素
E nextElement()取出当前元素
import java.awt.List;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Enumeration;
import java.util.Iterator;
import java.util.Vector;

public class IteratorDome {
	
	private static void enumration() {
		Vector vs=new Vector();
		vs.add("hjgj");
		vs.add("ghuopihv");
		vs.add("gjhagd");
		vs.add("dakj");
		
		Enumeration es=vs.elements();
		//hasMoreElements() 测试此枚举是否包含更多的元素。
		while(es.hasMoreElements()) {
			System.out.println(es.nextElement());
		}
	}
	
	
	//Iterator(jdk1.5前)
	private static void iterator(Collection c) {
		Iterator iter=c.iterator(); 
		//hasNext, 如果仍有元素可以迭代,则返回 true。
		while(iter.hasNext()) {
			System.out.println(iter.next());
		}
	}
	
	//foreach(jdk1.5后)
	private static void foreach(Collection c) {
		for(cat s:c) {
		System.out.println(s);
		}
	}
	

	public static void main(String[] args) {
		ArrayList list=new ArrayList<>();
		cat c1=new cat("hh",1);
		cat c2=new cat("huahau",3);
		cat c3=new cat("beibei",2);
		cat c4=new cat("hh",1);
		list.add(c1);
		list.add(c2);
		list.add(c3);
		list.add(c4);
		//foreach(list);
		iterator(list);
		enumration();
	}

}

cat [name=hh, age=1]
cat [name=huahau, age=3]
cat [name=beibei, age=2]
cat [name=hh, age=1]
hjgj
ghuopihv
gjhagd
dakj

5、foreach
在前面的知识讲解中,我们使用foreach来输出数组的内容,那么也可以输出集合中的内容。在使用foreach输出的
时候一定要注意的是,创建集合时要指定操作泛型的类型。
List numbers = new ArrayList<>();
JDK1.8新特性:
//no.1
numbers.forEach((Integer integer) -> {System.out.println(integer);});
//no.2
numbers.forEach(integer -> {System.out.println(integer);});
//no.3
numbers.forEach(integer -> System.out.println(integer));
//no.4
numbers.forEach(System.out::println);
//no.5
numbers.forEach(new MyConsumer());

	private static  void foreach() {
		ArrayList list=new ArrayList<>();
		list.add("hjgj");
		list.add("ghuopihv");
		list.add("gjhagd");
		list.add("dakj");
		
		//list.forEach((String s)->{System.out.println(s);});
		//list.forEach( s->{System.out.println(s);});
		//list.forEach( s->System.out.println(s));
		//list.forEach(System.out::println);

hjgj
ghuopihv
gjhagd
dakj

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/445983.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号