JAVA基础(002_forEach的实现原理)
来源:互联网 发布:浪潮服务器安装centos 编辑:程序博客网 时间:2024/06/07 16:56
forEach的实现原理
核心:forEach遍历的实现是对迭代器的使用。在API中,对Iterable<T>接口有这样的描述,实现此接口,允许对象成为”for-each loop”语法的target。
public interface Iterable<T>
Implementing this interface allows an object to be the target of the “for-each loop” statement.
以List集合为例:List<E>接口继承了Collection<E>接口,而Collection<E>接口继承了Iterable<E>接口。Iterable<E>接口中定义了迭代器。
- public interface Collection<E> extends Iterable<E>
- public interface List<E> extends Collection<E>
API源码如下(JDK8):public interface Iterable<T> { Iterator<T> iterator(); default void forEach(Consumer<? super T> action) { Objects.requireNonNull(action); for (T t : this) { action.accept(t); } } default Spliterator<T> spliterator() { return Spliterators.spliteratorUnknownSize(iterator(), 0); }}
forEach遍历示例:
public class MainClass { public class User { private String username; private String password; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } } public static void main(String[] args) { // 添加测试数据 List<User> users = new ArrayList<User>(); for (int i = 0; i < 5; i++) { User user = new MainClass().new User(); user.setUsername("张三" + i); user.setPassword("00000" + i); users.add(user); } // forEach遍历 for (User user : users) { System.out.println("username: " + user.getUsername() + "," + " " + "password: " + user.getPassword()); } }}
官方文档:
http://docs.oracle.com/javase/8/docs/api/index.html
http://docs.oracle.com/javase/8/docs/technotes/guides/language/foreach.html
0 0
- JAVA基础(002_forEach的实现原理)
- Java基础高效复习(hashmap的实现原理)
- Java基础---hashmap的实现原理
- Java基础-HashMap实现原理
- Java基础 foreach实现原理
- 【Java类集】_foreach及Enumeration接口笔记(实例亲测)
- 【Java类集】_foreach及Enumeration接口笔记(实例亲测)
- Java 类集 _foreach 及Enumeration 接口
- [Java基础要义] HashMap的设计原理和实现分析
- [Java基础要义] HashMap的设计原理和实现分析
- [Java基础要义] HashMap的设计原理和实现分析
- Java基础加强:细说JDK动态代理的实现原理
- [Java基础要义] HashMap的设计原理和实现分析
- Java基础 常见List实现原理 - ArrayList
- 【Java基础】冒泡排序算法原理+实现
- 【java基础】选择排序算法原理+实现
- Java基础 常见List实现原理 - LinkedList
- Java基础之--缓存基本实现原理
- CocoaPods升级到1.0.1遇到的错误
- 设计模式之:装饰模式
- Linux RTC驱动模型分析之rtc-sysfs.c
- gdb查看栈帧信息
- 涂鸦移动面试总结
- JAVA基础(002_forEach的实现原理)
- 三个工厂模式(Simple Factory & Factory Method & Abstract Factory)
- AIDL ——基础概念
- iOS前后端分离Swagger使用 swagger ISO8016报错
- boost之路 十三 容器
- Redis的持久化方式
- C. K-special Tables【构造】水
- Block简单介绍
- QT中mysql数据库的使用