00 30Java高级之集合输出

集合输出实际上从JDK 1.8开始就在Iterable接口之中提供有一个forEach()方法,但是这种方法的输出并不是传统意义上的集合输出形式,并且也很难在实际的开发之中出现,对于集合操作而言,一共有四种输出形式:Iterator迭代输出、ListIterator双向迭代输出、Enumeration枚举输出、foreach输出。

1 Iterator迭代输出

通过Collection接口的继承关系可以发现,从JDK 1.5开始其多继承了一个Iterable父接口,并且在这个接口里面定义有一个Iterator()操作方法,通过此方法可以获取Iterator接口对象(在JDK 1.5之前,这一方法直接定义在Collection接口之中)。
(1)获取Iterator接口对象:Iterator<T> iterator()
在Iterator接口里面定义有如下的方法:
(1)判断是否有数据:boolean hasNext()
(2)取出当前数据:E next()
(3)删除当前数据:default void remove()

在之前使用的java.util.Scanner类就是Iterator接口的子类,所以此时类继承关系如下:

范例:使用Iterator输出

package org.lks.demo;

import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

public class JavaReflectDemo {
   
	public static void main(String[] args) {
   
		Set<String> set = new HashSet<String>();
		set.add("Hello");
		set.add("World");
		set.add("lks");
		Iterator<String> iter = set.iterator();
		while(iter.hasNext()) {
   
			String str = iter.next();
			System.out.println(str);
		}
	}

}

但是对于Iterator接口中的remove()方法的使用需要特别注意一下(如果不是必须不要使用)。实际上在Collection接口里面定义有数据的删除操作方法,但是在进行迭代输出的过程里面如果你使用了Collection中的remove()方法会导致迭代失败。
范例:采用Collection集合中的remove()方法删除

package org.lks.demo;

import java.util.HashSet;
import java.util.Iterator;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值