java学习笔记--增强for循环

简介: 什么是增强for循环?原来的for循环是这样子的: for(int i=0;i
什么是增强for循环?

原来的for循环是这样子的:

for(int i=0;i<10;i++)

那我们来看一下增强for循环:

for(object a:x)//不只是object 数组存储的是什么类型的就填什么类型 x是数组或者集合

里面是Interator迭代器实现的
注意:遍历的时候不能用集合增删元素 只能通过迭代器进行操作

因为迭代器创建的时候会创建一个单链表 如果是通过集合来操作元素数量的话那么 实际的数量是变化了 可是迭代器创建的那个单链表却还是原来的样子 这样子 迭代器往下遍历的时候 就找不到实际的值


重点:
增强for循环的适用范围: 如果是实现了Iterable接口的对象或者是数组对象(包括int)都可以使用增强for循环。

//注意: Map集合没有实现Iterable接口,所以map集合不能直接使用增强for循环,如果需要使用增强for循环需要借助于Collection
        // 的集合。
        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();
        for(Map.Entry<String, String> entry  :entrys){
            System.out.println("键:"+ entry.getKey()+" 值:"+ entry.getValue());
        }

举例:   实现了Iterable接口的对象
package cn.itcast.jdk15;

import java.util.Iterator;

//自定一个类使用增强for循环
class MyList implements Iterable<String>{

    Object[] arr = new Object[10];

    int index = 0 ; //当前的指针

    public void add(Object o){
        arr[index++] = o;  // 1
    }

    public int size(){
        return index;
    }

    @Override
    public Iterator<String> iterator() {


        return new Iterator<String>() {

            int cursor  = 0;

            @Override
            public boolean hasNext() {
                return cursor<index;
            }

            @Override
            public String next() {
                return (String) arr[cursor++];
            }

            @Override
            public void remove() {

            }
        };
    }
}

public class Demo3 {

    public static void main(String[] args) {
        MyList list = new MyList();
        list.add("张三");
        list.add("李四");
        list.add("王五");

        for(String item :list){
            System.out.println(item);
        }



    }

}
目录
相关文章
|
1月前
|
Java
Java周期循环的代码可以如此简单
Java周期循环的代码可以如此简单
27 2
|
2月前
|
监控 负载均衡 Dubbo
|
3月前
|
前端开发 Java 数据安全/隐私保护
Java学习—GUI编程学习笔记
Java学习—GUI编程学习笔记
|
3月前
|
Java
Java中for循环的六种形态
Java中for循环的六种形态
23 0
|
4月前
|
Java C语言
Java选择与循环
Java选择与循环
35 0
|
4月前
|
存储 缓存 安全
《java核心技术36讲》学习笔记-------杨晓峰(极客时间)
《java核心技术36讲》学习笔记-------杨晓峰(极客时间)
56 0
|
1月前
|
Java 数据库连接 API
Java 学习路线:基础知识、数据类型、条件语句、函数、循环、异常处理、数据结构、面向对象编程、包、文件和 API
Java 是一种广泛使用的、面向对象的编程语言,始于1995年,以其跨平台性、安全性和可靠性著称,应用于从移动设备到数据中心的各种场景。基础概念包括变量(如局部、实例和静态变量)、数据类型(原始和非原始)、条件语句(if、else、switch等)、函数、循环、异常处理、数据结构(如数组、链表)和面向对象编程(类、接口、继承等)。深入学习还包括包、内存管理、集合框架、序列化、网络套接字、泛型、流、JVM、垃圾回收和线程。构建工具如Gradle、Maven和Ant简化了开发流程,Web框架如Spring和Spring Boot支持Web应用开发。ORM工具如JPA、Hibernate处理对象与数
94 3
|
1月前
|
Java
java使用循环案例—
java使用循环案例—
9 0
|
1月前
|
Java 开发者 Spring
【Java】Spring循环依赖:原因与解决方法
【Java】Spring循环依赖:原因与解决方法
39 0
|
1月前
|
存储 Java 容器
深入Java核心:变量、循环与条件语句的魔法
深入Java核心:变量、循环与条件语句的魔法
13 0