一:ArraryList  最终继承超级接口Collection,Colection接口继承Iterator接口。

public interface Collection<E>
extends Iterable<E>

而Iterator只有一个方法:

Iterator<T> iterator()

在ArraryList实现类中有对方法的重写,返回当前实现类的迭代器对象(Returns an iterator over a set of elements of type T.)。

 package test08;

 import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator; public class iter_demo {
public static void main(String...args){
iter_test(); }
public static void iter_test(){
Collection<Integer> in_ar=new ArrayList<Integer>();
in_ar.add();
in_ar.add();
in_ar.add();
in_ar.add();
Iterator<Integer> in_it=in_ar.iterator();
while (in_it.hasNext()){
System.out.print(in_it.next());
}
}
}

其中:hasNnext()判断迭代器中是否还有下一个数组元素。

next()表示获取下个数组元素。

迭代器实现原理类似内存指针,hasNext每次判断下个元素是否为空,即指针指向下个元素,有就返回true否则返回false。

二、增强for

语法: for(type  变量:可迭代的对象){

      代码块

    }

增强for虽然能减少代码的量,但是弊端也明显,无法操作索引。

上面例子不采用迭代器:

 package test08;

 import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator; public class iter_demo {
public static void main(String...args){
iter_test(); }
public static void iter_test(){
Collection<Integer> in_ar=new ArrayList<Integer>();
in_ar.add();
in_ar.add();
in_ar.add();
in_ar.add();
for(Integer i:in_ar){
System.out.print(i);
}
}
}

如果想要操作索引,还得使用传统的for。

 package test08;

 import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator; public class iter_demo {
public static void main(String...args){
iter_test(); }
public static void iter_test(){
Collection<Integer> in_ar=new ArrayList<Integer>();
in_ar.add();
in_ar.add();
in_ar.add();
in_ar.add();
for(Integer i=;i<in_ar.size();i++){
ArrayList<Integer> in_ar_new=(ArrayList<Integer>) in_ar;
System.out.print(in_ar_new.get(i));
}
}
}

java集合---迭代器iterator的更多相关文章

  1. Java集合迭代器 Iterator分析

    简介 迭代器是遍历容器的一种常用方法,它屏蔽了容器的实现细节,无需暴露数据结构内部,就可以对容器进行遍历,迭代器本身也是一种设计模式,迭代是一种特殊的遍历方式. Iterator 在java中,迭代器 ...

  2. Java 实现迭代器(Iterator)模式

    类图 /** * 自己定义集合接口, 相似java.util.Collection * 用于数据存储 * @author stone * */ public interface ICollection ...

  3. java集合迭代器

    一.Java中有一个设计模式是迭代器模式 1.迭代器模式定义迭代器模式(Iterator),提供一种方法顺序访问一个聚合对象中的各种元素,而又不暴露该对象的内部表示. 2.迭代器模式概述Java集合框 ...

  4. 集合迭代器Iterator

    迭代器模式:就是提供一种方法对一个容器对象中的各个元素进行访问,而又不暴露该对象容器的内部细节. 什么是迭代器Iterator? Java集合框架的集合类,我们有时候称之为容器.容器的种类有很多种,比 ...

  5. Java集合(二)--Iterator和Iterable

    Iterable: public interface Iterable<T> { Iterator<T> iterator(); } 上面是Iterable源码,只有一个ite ...

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

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

  7. Java 集合、Iterator迭代器、泛型等

    01集合使用的回顾 A:集合使用的回顾 a.ArrayList集合存储5个int类型元素 public static void main(String[] args) { ArrayList<I ...

  8. Java中迭代器Iterator的使用

    Java集合类中Map接口下的相关类并没有像Collection接口的相关类一样实现get()方法,因此在要实现遍历输出的场景中没法直接用get()方法来取得对象中的数据,但Java本身提供了另一种遍 ...

  9. java:集合输出Iterator,ListIterator,foreach,Enumeration

    //集合输出,集合的四种输出 Iterator, ListIterator, foreach, Enumeration 只要碰到集合,第一输出选择是Iterator类. Iterator<E&g ...

随机推荐

  1. Vue项目打包报错Failed to load resource: net::ERR_FILE_NOT_FOUND

    webpack.prod.conf.js 中output添加参数publicPath:'./' 修改webpack.base.conf.js中: publicPath: process.env.NOD ...

  2. python之切片

    1.为什么要学习切片[切片是解决何种问题的?] (2)对于含有元素很少的list,我们遍历其前三个元素,通常可以这样来实现: #遍历list,取其中索引为[0].[1].[2]的元素: L = ['X ...

  3. elixir 基础数据结构

     Elixir中的一些基础的数据结构:整数,浮点数,字符串,原子,列表,元组  整数,浮点数,字符串 跟其他语言差不多  原子:名字为值的常量  在ruby类似Symbols  在erlang是用大写 ...

  4. x86项目中读取注册表Register数据项的方法

    x86项目中使用Registry读取key/value的时候,会出现重定向的问题,解决方法如下: public static string GetMachineGuid() { string guid ...

  5. Automate the Sizing of your SGA in Oracle 10g

    How much memory does each of the individual components of the SGA need? Oracle now has methods to de ...

  6. Week7——JSON

    1.什么是JSON? JSON是JavaScript对象表示法,全称是JavaScript Objec Notation.它是存储和交换文本信息的语法,类似于XML.JSON是轻量级的文本数据交换格式 ...

  7. systemd 之 systemctl

    Systemd 常规操作与彩蛋 一.前言 上了俩个月的RHCE工程师的班,收获颇多.话说回来,在 redhat 7 中有个非常重要的概念,即:systemd systemd 是 Linux 下的一款系 ...

  8. [UI] 精美UI界面欣赏[3]

    精美UI界面欣赏[3]

  9. 详细讲解WaterRefreshLoadMoreView的使用

    详细讲解WaterRefreshLoadMoreView的使用 效果图: 加载控件的源码在如下网址中:上拉加载下拉刷新控件WaterRefreshLoadMoreView 使用的源码: // // V ...

  10. 转载、Python的编码处理(二)

    以下转自于:wklken的博客,写的非常好的一段有关编码的总结. Python-进阶-编码处理小结 整理下python编码相关的内容 注意: 以下讨论为Python2.x版本, Py3k的待尝试 开始 ...