集合输出

集合输出方式

  • Iterator
  • ListIterator
  • Enumeration
  • foreach

Iterator迭代输出

在这里插入图片描述
在这里插入图片描述
范例:使用Iterator输出set集合

package com.lxh.eighteenchapter;

import java.util.Iterator;
import java.util.Set;
import java.util.TreeSet;

public class JavaCollectionDemo492 {
       public static void main(String[] args) {
		Set<String> all=new TreeSet<String>();
		all.add("张三");
		all.add("李四");
		all.add("王五");
		all.add("周六");
		Iterator<String> iter=all.iterator();
		while (iter.hasNext()) {    //判断是否有数据
			String str=iter.next();    //获取每一个数据
			System.out.println(str+"、");
			
		}
		
	}
}

执行结果

周六、张三、李四、王五、

ListIterator双向迭代输出

Iterator可以完成的是由前向后的单向输出操作,如果现在希望可以完成由前向后,和由后向前输出的话,那么就可以利用ListIterator接口完成,此接口是Iterator的子接口
在这里插入图片描述
在这里插入图片描述
范例:执行双向迭代操作
在进行由后向前的反向迭代前一定要先进行由前向后的迭代才可以正常使用

package com.lxh.eighteenchapter;

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

public class JavaCollectionDemo494 {
       public static void main(String[] args) {
		List<String> list=new ArrayList<String>();
		list.add("1");
		list.add("2");
		list.add("3");
		list.add("4");
		list.add("5");
		ListIterator iter=list.listIterator();
		//由前向后
		while (iter.hasNext()) {
			String str=(String) iter.next();
			System.out.print(str+" ");		
		}
		System.out.println();   //换行
		//由后向前
		while (iter.hasPrevious()) {
			String str=(String) iter.previous();
			System.out.print(str+" ");
		}
	}
}

执行结果

1 2 3 4 5 
5 4 3 2 1 

Enumeration枚举输出

Enumeration是在JDK 1.0时推出的早期集合输出接口(最初被称为枚举输出),该接口设置的主要目的是为了输出Vector集合数据
在这里插入图片描述
在这里插入图片描述
范例:使用Enumeration输出Vector集合数据


import java.util.Enumeration;
import java.util.Vector;

public class JavaCollectionDemo495 {
        public static void main(String[] args) {
			Vector<Integer> ve=new Vector<>();
			ve.add(1);
			ve.add(2);
			ve.add(3);
			ve.add(4);
			Enumeration<Integer> enm=ve.elements();  //获取Enumeration实例
			while (enm.hasMoreElements()) {
				Integer integer = (Integer) enm.nextElement();
				System.out.print(integer+" ");
				
			}
		}
}

执行结果

1 2 3 4

foreach

JDK 1.5版本后开始提供的foreach迭代输出操作,除了可以实现数组输出外,也支持集合的输出操作。
范例:使用foreach输出集合数据

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

public class JavaCollectionDemo496 {
       public static void main(String[] args) {
		Set<Integer> set=new HashSet<>();
		set.add(1);
		set.add(2);
		set.add(3);
		set.add(4);
		for(Integer s:set) {
			System.out.print(s+" ");
		}
	}
}

执行结果

1 2 3 4

范例:自定义类使用foreach输出
需要Iterable接口支持

package com.lxh.eighteenchapter;

import java.util.Iterator;

public class Message496 implements Iterable<String> {
    private String[] str=new String[] {"张三","李四","王五","周六"};
	private int foot;
	@Override
	public Iterator<String> iterator() {  //获取Iterator实例
		
		return new MessageIterator();
	}

	//内部类
	private class MessageIterator implements Iterator<String>{

		@Override
		public boolean hasNext() {
			
			return Message496.this.foot<Message496.this.str.length;
		}

		@Override
		public String next() {
			
			return Message496.this.str[Message496.this.foot++];
		}
		
	}
}


测试

package com.lxh.eighteenchapter;

public class JavaCollectionDemo497 {
       public static void main(String[] args) {
		Message496 mes=new Message496();
		for(String msg:mes) {
			System.out.print(msg+" ");
		}
	}
}

执行结果

张三 李四 王五 周六 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值