for  ,foreach 的区别如下:

1. 形式区别

对于for循环,我们采用:

for(int i=0;i

对于foreach:

for(int i:arr){...}

对与迭代器:

Iterator it = arr.iterator();

while(it.hasNext()){ object o =it.next(); ...};

2. 条件差别

for需要知道数组或者集合的大小,而且需要时有序的,不然无法遍历;

foreach和iterator不需要知道数组或者集合的大小,他们都是得到集合内的每一个元素然后进行处理;

3. 多态差别

for和foreach都需要知道自己的集合类型,甚至要知道自己集合内的元素类型,不能实现多态。这个使用的语法上都可以表示出来。

Iterator是一个接口类心,它不关心集合的类心和集合内的元素类型,因为它是通过hasnext和next来进行下一个元素的判断和获取,这一切都是在集合类型定义的时候就完成的事情。迭代器统一了对容器的访问模式,这也是对接口解耦的最好表现。

4. 用法差别

for一般可以用于简单的顺序集合,并且可以预测集合的大小;

foreach可以遍历任何集合或者数组,但是使用者需要知道遍历元素的类型。

iterator是最强大的,它可以随之修改元素内部的元素。可以在遍历的时候使用remove();  而且iterator不需要知道元素类型和元素大小,通过hasnext()判断是否遍历完所有元素。 而且在对范型的集合进行遍历的时候,iterator是不二的选择,就是因为不需要知道元素类型便可以遍历。

java里的foreach迭代器_java 中 for 、foreach 和 迭代器 的学习笔记相关推荐

  1. java foreach标签_Java中Velocity foreach循环标签详解

    Java中Velocity foreach循环标签详解 Java Velocity中foreach循环可以很容易的遍历数组或者集合. 定义 #foreach( $elem in $allElems) ...

  2. java里有哪些对象_Java中创建对象的方式有哪些

    创建对象的几种方式: 1.这是最常用的方法:通过new 创建对象.这种方法需要用到构造器.Demo demo1=new Demo(); Demo demo2=new Demo(1,"有参构造 ...

  3. java里有位移吗_Java 中位移运算符 ,,

    Java 中的三种位移运算符 java中有三种移位运算符 <<      :     左移运算符,num << 1,相当于num乘以2 >>      :     ...

  4. java里包含怎么算_java中怎么判断一个字符串中包含某个字符或字符串

    展开全部 /*这是一62616964757a686964616fe58685e5aeb931333363393630个静态函数,不用声明对象就可以用的,如你的类名为Test,在任何情况下都可以调用Te ...

  5. java 里button的功能_java中怎么通过摁一个按钮显示一个图片的功能

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 import java.awt.*; import javax.swing.*; import java.awt.event.*; public clas ...

  6. java for循环返回值_Java中的for循环——通过示例学习Java编程(9)

    作者:CHAITANYA SINGH 来源:https://www.koofun.com/pro/kfpostsdetail?kfpostsid=21 循环用于反复执行同一组语句,直到满足特定条件为止 ...

  7. Java中如何创建自定义的注解学习笔记(MD版)

    概要 Java中如何创建自定义的注解学习笔记(MD版). 博客 博客地址:IT老兵驿站. 前言 记得这篇笔记还是在泉州的龙玲酒店记录的,是一个周六的晚上,坐飞机从上海到泉州,从笔记中能勾起一些旅游的回 ...

  8. 第98讲:使用SBT开发时动手解决rt.jar中CharSequence is broken等问题学习笔记

    第98讲:使用SBT开发时动手解决rt.jar中CharSequence is broken等问题学习笔记 几乎所有从IDEA官网上下载安装在win上,采用默认方式自动运行的都 会遇到这个问题. er ...

  9. Asp.Net 中Report Service (RDLC)动态绑定数据-学习笔记

    Asp.Net 中Report Service (RDLC)动态绑定数据-学习笔记 1)托拽ReportViewer控件到aspx页面,此时,系统会自动添加相关引用,修改Web.config设置: 2 ...

  10. python面向对象编程中方法和属性_Python面向对象编程中关于类和方法的学习笔记...

    Python面向对象编程中关于类和方法的学习笔记 类与类方法是面向对象的编程语言中必不可少的特性,本文总结了Python面向对象编程中关于类和方法的学习笔记,需要的朋友可以参考下 类和实例 pytho ...

最新文章

  1. 力扣(LeetCode)刷题,简单题(第21期)
  2. Swift 圆环进度条
  3. SQL Server 2005——下一代的数据管理和分析软件[转]
  4. 《去哪网编程题》身份证分组
  5. Jzoj4348 打击目标
  6. AHK 中的字符串拼接和遍历操作
  7. css3之 谜灯卡片_纯css3灯泡开关特效代码
  8. CCNA学习笔记-1 基础知识回顾
  9. 小刘同学的CMOS模拟集成电路学习小记(不停更新)
  10. 2021最新 武汉互联网公司
  11. 【Java多线程】synchronized同步语句块
  12. 净推荐值(NPS)完整行动指南
  13. CapstoneCS5211,CS5212,CS5256,CS5811,CS5288,……型号大全
  14. 服务器硬盘可以换盘位吗,RAID里的硬盘可以互换槽位吗
  15. for 和 for...in 和 for...of
  16. Web 前端开发规范手册
  17. 文本编辑器的制作(C#)
  18. java web 酒店管理系统_GitHub - inkss/hotelbook-JavaWeb: 酒店管理系统-JavaWeb期末项目。...
  19. 算法工程师-机器学习-数据科学家面试准备[外企和国外公司、春招、秋招]
  20. TI1443Boost + Uniflash下载问题:卡在Connected to COM port问题解决

热门文章

  1. C#以文件夹共享方式实现2G以上大文件传输
  2. Linux学习之CentOS6下Mysql数据库的安装与配置
  3. linux下简易搭建svnserver
  4. springmvc5源码
  5. 选股方法-陶博士-月线反方法的思路来源
  6. C++ 继承/派生、访问属性、构造函数
  7. 复选框的遍历和选中设置
  8. JDK+Tomcat+MySql环境配置—linux
  9. 多线程之Thread类
  10. Faster-RCNN 训练自己的数据