foreach循环(增强for循环)

1 foreach循环本质上是迭代器遍历,简化了迭代器遍历的书写方式

2 适用于实现了Iterable接口的对象或者数组对象

3 格式为:for(数据类型 变量名:循环目标){

                    循环主体

                }


迭代器遍历:

Java提供给了一个公共的取出元素的方式,叫迭代器 描述迭代器的接口:java.util.interator

             接口中的方法:hsanext()  返回值为Boolean类型:true为还有元素可以迭代,false为没有了

                                    next()  返回迭代的下一个元素。

迭代器是一个接口,需要找到迭代器的实现类,迭代器的实现类是每个集合的内部类

在Collection接口中有一个方法: iterator方法返回的就是迭代器

迭代器的使用步骤:
1.创建集合对象,往集合中添加元素
2.使用集合中的方法iterator获取迭代器的实现类对象,使用Iterator接口接收(多态)

3.使用iterator中的方法hasNext和next方法进行迭代,取出集合中的元素

代码示例:

public static void main(String[] args) {

    //创建集合对象,往集合中添加元素

    HashSet<String> set = new HashSet<>();
    set.add("张三");
    set.add("李四");

    set.add("王五");

   //使用集合中的方法iterator获取迭代器的实现类对象,使用Iterator接口接收(多态)

   Iterator it =set.iterator();

    //使用iterator中的方法hasNext和next方法进行迭代,取出集合中的元素

   while(it.hasNext){

        String s= it.next();

        system.out.println(s)

    }

//foreach循环

for(String it:set){

    system.out.println(it)

}

}

foreach缺点:

1 不能对集合进行增删操作

foreach循环底层也是使用的迭代器,不过获取迭代器是由jvm完成,不需要我们获取迭代器而已,所以在使用foreach循环变量元素的过程中不准使用集合对象对集合的元素个数进行修改。

for(String it:set){

    system.out.println(it)

    remove(it)//此处remove是错误的,不允许对集合元素个数修改

}

2 作用范围 必须实现iterable(如何对一个map集合使用增强for循环)

    map集合没有实现iterable接口,所以不能直接使用   map集合有个entryset方法  返回类型是set  set实现了iterable

    代码:

HashMap<String, String> map = new HashMap<String, String>();
    map.put("001","张三");
    map.put("002","李四");
    map.put("003","王五");
    map.put("004","赵六");
    Set<Map.Entry<String, String>> entrys = map.entrySet();//map集合的entryset方法
    for(Map.Entry<String, String> entry  : entrys){
        System.out.println("键:"+ entry.getKey()+" 值:"+ entry.getValue());
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值