因为初学java,对部分语法还模棱两可,

在做练习的时候,用增强for遍历字符串编译报错

所以来复习下增强for原理和适用范围

一.增强for概念

  增强for(也成为for each循环)是JDK 1.5以后出来的一个高级for循环,

  专门用来遍历数组和集合的,内部原理是iterator迭代器,所以遍历时,不能对集合中元素增删

  遍历数组代码演示:

    

int[] arr = {3,5,6,87};
//使用增强for遍历数组
for(int a : arr){//a代表数组中的每个元素
System.out.println(a);

  代码放在test类中运行遍历出数组内元素

  遍历集合代码演示:  

Collection<String> coll = new ArrayList<String>();
coll.add("小河神");
coll.add("老河神");
coll.add("神婆");
for(String s :coll){
System.out.println(s);//变量S,表示被遍历到的集合内部的元素
}

  代码放在test类中运行遍历出集合内各个元素

二.Iterator接口

  1.增强for循环内部使用的是iterator,所以来了解下Iterator

    Iterator主要用于迭代访问(即遍历) Collection中的元素,因此Iterator对象也被称为迭代器

  2.要向遍历集合,先要获取迭代器对象,获取迭代器方法:

    public Iterator iterator():  获取集合对应的迭代器,用来遍历集合

    

Collection<String> coll = new ArrayList<String>();
// 添加元素到集合
coll.add("串串星人");
coll.add("吐槽星人");
coll.add("汪星人");
//使用迭代器 遍历 每个集合对象都有自己的迭代器
Iterator<String> it = coll.iterator();
while(it.hasNext()){  //判断是否有迭代元素
  String s = it.next();  //获取迭代出的元素
  Syetem.out.println(s);
}

迭代器的实现原理:

  1.通过集合 coll 调用iterator()方法获得迭代器对象; 

  2.使用hashNext()方法盘算集合中是否存在下一个元素;

  3.如果存在,调用next()方法将元素取出,否则说明已经到达了集合末尾,停止遍历元素

增强for、iterator迭代器的更多相关文章

  1. Java集合、Iterator迭代器和增强for循环整理

    集合 集合,集合是java中提供的一种容器,可以用来存储多个数据. 数组的长度是固定的.集合的长度是可变的.集合中存储的元素必须是引用类型数据 1.1      ArrayList集合存储元素 pac ...

  2. JavaSE Collections类 , Iterator迭代器 , 增强for循环

    Collections 它是集合的工具类,为集合体系扩展了一些其他的方法.类中都是静态的方法,可以使用类名直接调用. 可变参数 在JDK1.5之后,如果我们定义一个方法需要接受多个参数,并且多个参数类 ...

  3. day06(Collection,List,ArrayList,LinkedList,iterator迭代器,增强for)

    Collection   接口    方法实现 boolean  add(Object o);//添加 boolean  remove(Object o);//移除 修改方法   让实现类自己去实现修 ...

  4. 18_集合框架_第18天_集合、Iterator迭代器、增强for循环 、泛型_讲义

    今日内容介绍 1.集合 2.Iterator迭代器 3.增强for循环 4.泛型 01集合使用的回顾 *A:集合使用的回顾 *a.ArrayList集合存储5个int类型元素 public stati ...

  5. JAVA基础之集合、Iterator迭代器、泛型及增强for循环

    个人理解: 对于集合,首先要明确的是最顶层的接口是Collection接口类,其包含一些基本的方法以便子类调用,不过在定义的时候最好定义好数据类型,以免遍历时还得必须进行向上转型:特别注意的是其没有关 ...

  6. java基础(18):集合、Iterator迭代器、增强for循环、泛型

    1. 集合 1.1 集合介绍 集合,集合是java中提供的一种容器,可以用来存储多个数据. 在前面的学习中,我们知道数据多了,可以使用数组存放或者使用ArrayList集合进行存放数据.那么,集合和数 ...

  7. Java学习笔记28(集合框架二:Iterator迭代器)

    Iterator接口,翻译成中文是迭代器 迭代器的概念通俗解释: java中有很多的集合,内部有各种存储方法,取出的方式也各不相同,是否可以有一种通用的方式来获取呢? 这种方式类似for循环遍历, 通 ...

  8. 8.2.2 使用Java8增强的Iterator遍历集合元素

    8.2.2 使用Java 8增强的Iterator遍历集合元素 Iterator接口方法 程序示例 Iterator仅用于遍历集合 Iterator必须依附于Collection对象 修改迭代变量的值 ...

  9. Collection接口【集合】和Iterator迭代器类

    1.1集合的概述 前面基础学习并使用过集合ArrayList<E>,那么集合究竟是什么呢? 集合:集合是Java中提供的一种容器,可以用来存储多个数据. 那么意思就是说集合是容器,但是容器 ...

随机推荐

  1. Linux 搭建DNS

    Linux 搭建DNS 使用yum源安装 yum -y install bind* 修改主配置文件 [root@localhost ~]# cp /etc/named.conf /etc/named. ...

  2. 2019 年 Spread.NET 产品路线图(Roadmap)

    前言 | 问题背景 2018年结束了,12月是Spread.NET的重要月份.我们发布了Spread.NET 12,我们期待着 2019 年令人兴奋的新年,这是Windows Forms开发人员有史以 ...

  3. 【HNOI 2017】影魔

    Problem Description 影魔,奈文摩尔,据说有着一个诗人的灵魂.事实上,他吞噬的诗人灵魂早已成千上万.千百年来,他收集了各式各样的灵魂,包括诗人.牧师.帝王.乞丐.奴隶.罪人,当然,还 ...

  4. Date日期类型的绑定

    自定义类型的绑定 springmvc没有提供默认的对日期类型的绑定,需要自定义日期类型的绑定 第一张图是po类中日期属性,第二张图是页面中日期属性的内容,第三张图片是访问出现400错误 因为日期的格式 ...

  5. php list()函数

    说明: (PHP 4, PHP 5, PHP 7) list — 把数组中的值赋给一组变量 像 array() 一样,这不是真正的函数,而是语言结构. list() 可以在单次操作内就为一组变量赋值. ...

  6. 使用win10的开始屏幕,在系统中设置简洁、快捷桌面

    前几天入手了一个本本,由于之前电脑使用的柠檬桌面软件和现在本本的分辨率不适应,意外发现win10自带的开始屏幕整理桌面也是很有意思,再加上触摸板的手势,瞬间觉得整个电脑都清洁许多.废话少说,开始上料. ...

  7. MySQL 存储过程循环

    MySQL  存储过程循环 MySQL循环语句(包括WHILE,REPEAT和LOOP)来根据条件反复运行代码块. MySQL提供循环语句,允许您根据条件重复执行一个SQL代码块. MySQL中有三个 ...

  8. es6开发环境搭建,babel 将es6转化成es5

    工欲善其事,必先利其器.所以我们第1节就是搭建一个基本的ES6开发环境.现在的Chrome浏览器已经支持ES6了,但是有些低版本的浏览器还是不支持ES6的语法,这就需要我们把ES6的语法自动的转变成E ...

  9. linux shell实战之知识体系

    1.认识GUN/bash shell 梳理清楚硬件,内核及模块,shell之间的关系:熟悉GUN的bash以及bash shell的功能:学习shell的通配符 2.shell 的变量 变量的设置,取 ...

  10. vue项目中使用插件将字符串装化为格式化的json数据(可伸缩)

    插件地址:https://www.npmjs.com/package/vue-json-viewer 第一步:安装vue-json-viewer插件 $ npm install vue-json-vi ...