集合输出Iterator、ListIterator、Enumeration、foreach


从标准来讲,集合输出有四种手段:Iterator、ListIterator、Enumeration、foreach

1.迭代输出 Iterator

//1.判断是否有下一个元素
boolean hasNext();
//2.取得当前元素
E next();
//3.删除元素
public default void remove();

1.1 Iterator使用

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

public class Test {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("Java");
        list.add("网络");
        list.add("数据库");
        list.add("数据结构");
        Iterator<String> iterator = list.iterator();
        while(iterator.hasNext()){
            String str = iterator.next();
            System.out.println(str);
        }
    }
}

在这里插入图片描述

1.2 删除元素

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

public class Test {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("Java");
        list.add("网络");
        list.add("数据库");
        list.add("数据结构");
         // 实例化Iterator对象
        Iterator<String> iterator = list.iterator();
         // 使用集合提供的remove()方法,则会产生ConcurrentModificationException
	     // 使用Iterator的remove方法则不会产生异常
        while(iterator.hasNext()){
            if(iterator.next().equals("Java")){
                iterator.remove();
            }
        }
        System.out.println(list);
    }
}

在这里插入图片描述

2.双向迭代输出接口

Iterator输出有一个特点,只能够由前向后进行内容的迭代处理,而如果想要进行双向迭代,就必须依靠Iterator的子接口:ListIterator来实现

//1.判断是否有下一个元素
boolean hasNext();
//2.取得下一个元素
E next();
//3.删除元素
 void remove();
//4.判断是否有上一个元素
 boolean hasPrevious();
 //5.取得上一个元素
  E previous();
import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;

public class Test{
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("Java");
        list.add("网络");
        list.add("数据库");
        list.add("数据结构");
        ListIterator<String> listIterator =
                list.listIterator();
        //由前向后
        while(listIterator.hasNext()){
            System.out.print(listIterator.next()+"->");
        }
        System.out.println();
        //由后向前
        while(listIterator.hasPrevious()){
            System.out.print(listIterator.previous()+"->");
        }
    }
}

在这里插入图片描述

3.for-each循环

import java.util.ArrayList;
import java.util.List;
public class Test{
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("Java");
        list.add("网络");
        list.add("数据库");
        list.add("数据结构");
        for(String i:list){
            System.out.println(i);
        }

    }
}

在这里插入图片描述

4. Enumeration

//判断是否有下一个元素
public boolean hasMoreElements();
//取得元素
public E nextElement();

但是要想取得这个借口的实例化对象,是不能依靠Collection、List、Set等子类的。只能够依靠Vector子类,因为Enumeration最早的设计就是为Vector服务的,在Vector类中提供有一个取得Enumeration借口对象的方法:public Enumeration<E> elements()

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

public class Test{
    public static void main(String[] args) {
        Vector<String> vector = new Vector<>();
        vector.add("Java");
        vector.add("c");
        vector.add("数据库");
        vector.add("c++");
        Enumeration<String> enumeration = vector.elements();
        while(enumeration.hasMoreElements()){
            System.out.println(enumeration.nextElement());
        }
    }
}

在这里插入图片描述

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值