集合之间的遍历

一、Iterator

在Iterator几个提供了遍历的方法,该方法可以获取迭代器的接口

public class IteratorDemo {
    public static void main(String[] args) {
        Collection c = new ArrayList();
        c.add("one");
        c.add("#");
        c.add("two");
        c.add("#");
        c.add("three");
        c.add("#");
        c.add("four");
        c.add("#");
        c.add("five");
        System.out.println(c);
/*
迭代器的常用方法 boolean hasNext()  询问集合时候话游戏一个元素
迭代器默认的开始位置是在集合的第一个元素之前,  it.next()为迭代器向后移动一个位置并获取
 */
        Iterator it = c.iterator();
        while(it.hasNext()){
            String str=(String)it.next();
            if("#".equals(str)){
                //c.remove(str);  迭代器遍历过程中会通过集合的方式增删元素  两个线程一起运行会出错
                it.remove();
            }
            System.out.println(str);
        }
        System.out.println(c);
    }
}

二、NewFor

newfor时增强型的for循环,用于集合或者数组之间的遍历

public class NewForDemo {
    public static void main(String[] args) {
        String[] array = {"one","two","three","four","five"};
        for(int i=0;i<array.length;i++){
            String str = array[i];
            System.out.println(str);
        }
        //新循环遍历数组会被编译器改回成普通for循环
        for(String str : array){
            System.out.println(str);
        }
        /*
            JDK5之后推出的另一个特性:泛型
            泛型也称为参数化类型,允许我们在使用一个类时,传入某个类型来规定其内部的属性,方法的参数或方法返回值的类型,使得我们使用时更加方便.
            在集合中泛型被广泛使用,用于规定集合中的元素类型.
            泛型原型为Object,编译器认可.
            赋值操作时,编译器会检查类型是否匹配.不匹配会编译不通过
            获取泛型的值时,编译器会补充造型操作.
         */
        //Collection<E>
        Collection<String> c = new ArrayList<>();
        c.add("one");//add(E e)==>add(String e)
        c.add("two");
        c.add("three");
        c.add("four");
        c.add("five");
//        c.add(123);//编译不通过,实参类型违背了当前集合指定的泛型E的实际类型String

        Iterator<String> it = c.iterator();//迭代器指定的泛型应当与其遍历的集合泛型一致
        while(it.hasNext()){
            String str = it.next();//指定泛型后,获取元素无需再手动造型
            System.out.println(str);
        }

        //新循环遍历集合会被编译器改回成迭代器遍历
        for(String str : c){//集合指定泛型后,可直接用元素类型接收元素,编译器会补充造型操作.
            System.out.println(str);
        }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值