collection与foreach

collection中用迭代器和foreach循环遍历

迭代器

迭代器(对集合进行遍历)
/*boolean hasNext()
如果迭代具有更多元素,则返回 true 。
E next()
返回迭代中的下一个元素。
Iterator是一个接口,我们无法直接使用,需要使用Iterator接口的实现类对象,获取实现类的方式比较特殊
Collection接口中有个方法,叫Iterator(),这个方法返回的就是迭代器的实现类对象
Iteratoriterator()返回在此collection的元素上进行迭代的迭代器。
使用迭代器的步骤

1.使用集合中的iterator()获取迭代器的实现类对象,使用Iterator接口接收(多态)
2.使用hasnext()
3.使用next()*/
代码:

public class Demo02CollectionIterator {
public static void main(String[] args) {
    Collection<String> coll=new ArrayList<>();
    coll.add("迪丽热巴1");
    coll.add("迪丽冷巴2");
    coll.add("迪丽雪巴3");
    coll.add("迪丽晴巴4");
    coll.add("迪丽雨巴5");
    coll.add("迪丽雷巴6");
    //多态接口类型跟随collection的类型。
    Iterator<String> it = coll.iterator();
    boolean b=it.hasNext();
    System.out.println(b);//true
    System.out.println(it.next());//迪丽热巴1
    /*for (int i = 0; i < coll.size(); i++) {
        System.out.println(it.next());
    }*//*
    迪丽冷巴2
     迪丽雪巴3
     迪丽晴巴4
     迪丽雨巴5
     迪丽雷巴6Exception in thread "main" java.util.NoSuchElementException
    at java.util.ArrayList$Itr.next(ArrayList.java:862)
    at cn.itcast.Collection.Demo02CollectionIterator.main(Demo02CollectionIterator.java:37)*///符合预期的错误,上面已经next一遍了。

    //改进用while
     while (it.hasNext())
     {
         System.out.println(it.next());//it.next()相当于内存中存放的堆,先进先出。指针后移。
     }/*迪丽冷巴2
        迪丽雪巴3
        迪丽晴巴4
        迪丽雨巴5
        迪丽雷巴6*/
     System.out.println(it.hasNext());//false
}
}

foreach

增强for循环,底层也是迭代器,使用for循环的格式,简化了迭代器的书写
collectionextends iterable:所有的单例集合都可以使用增强for
public interface iterable实现这个接口允许对象成为foreach语句的目标
格式
for(集合/数组 变量名:集合名/数组名)
{
sout(变量名)
}
代码:

public class Demo03Foreach {
public static void main(String[] args) {
   demo01();
   demo02();
}

private static void demo02() {
    ArrayList<String> list=new ArrayList<>();
    list.add("迪丽热巴1");
    list.add("迪丽热巴2");
    list.add("迪丽热巴3");
    list.add("迪丽热巴4");
    list.add("迪丽热巴5");
    list.add("迪丽热巴6");
    list.add("迪丽热巴7");
    list.add("迪丽热巴8");
    list.add("迪丽热巴9");
    list.add("迪丽热巴10");
    for (String l:list
         ) {
        System.out.println(l);

    }
}


private static void demo01() {
    int array[]={1,2,3,4,5,6,7,8,9,10};
    for (int a:array) {
        System.out.println(a);

    }
}

}

显示效果:

1
2
3
4
5
6
7
8
9
10
迪丽热巴1
迪丽热巴2
迪丽热巴3
迪丽热巴4
迪丽热巴5
迪丽热巴6
迪丽热巴7
迪丽热巴8
迪丽热巴9
迪丽热巴10

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值