博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java集合---迭代器iterator
阅读量:5278 次
发布时间:2019-06-14

本文共 2282 字,大约阅读时间需要 7 分钟。

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

public interface Collection
extends

而Iterator只有一个方法:

<> iterator()

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

1 package test08; 2  3 import java.util.ArrayList; 4 import java.util.Collection; 5 import java.util.Iterator; 6  7 public class iter_demo { 8     public  static void  main(String...args){ 9         iter_test();10 11     }12     public static  void iter_test(){13         Collection
in_ar=new ArrayList
();14 in_ar.add(11);15 in_ar.add(11);16 in_ar.add(11);17 in_ar.add(11);18 Iterator
in_it=in_ar.iterator();19 while (in_it.hasNext()){20 System.out.print(in_it.next());21 }22 }23 }

 

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

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

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

二、增强for

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

      代码块

    }

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

上面例子不采用迭代器:

1 package test08; 2  3 import java.util.ArrayList; 4 import java.util.Collection; 5 import java.util.Iterator; 6  7 public class iter_demo { 8     public  static void  main(String...args){ 9         iter_test();10 11     }12     public static  void iter_test(){13         Collection
in_ar=new ArrayList
();14 in_ar.add(11);15 in_ar.add(11);16 in_ar.add(11);17 in_ar.add(11);18 for(Integer i:in_ar){19 System.out.print(i);20 }21 }22 }

 

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

1 package test08; 2  3 import java.util.ArrayList; 4 import java.util.Collection; 5 import java.util.Iterator; 6  7 public class iter_demo { 8     public  static void  main(String...args){ 9         iter_test();10 11     }12     public static  void iter_test(){13         Collection
in_ar=new ArrayList
();14 in_ar.add(11);15 in_ar.add(11);16 in_ar.add(11);17 in_ar.add(11);18 for(Integer i=0;i
in_ar_new=(ArrayList
) in_ar;20 System.out.print(in_ar_new.get(i));21 }22 }23 }

 

转载于:https://www.cnblogs.com/evilliu/p/7837742.html

你可能感兴趣的文章
rtp协议详解/rtcp协议详解
查看>>
费马小定理的证明
查看>>
QAction QActionGroup QMenu 使用方法
查看>>
LeetCode Binary Search Summary 二分搜索法小结
查看>>
快速排序理论---不含源码
查看>>
设计模式之--单例模式
查看>>
解决怎样监听Activity切换
查看>>
带着问题读CLR via C#(三)基元类型,引用类型和值类型(上)
查看>>
vue-时间插件,效果见图
查看>>
django1.11 启动错误:Generator expression must be parenthesized
查看>>
SDP协议
查看>>
Java学习笔记8---类的静态成员变量与静态成员方法的访问与调用方式
查看>>
cpno在数据库里面是什么意思??
查看>>
hdu1420(C++)
查看>>
自定义注解
查看>>
公积金
查看>>
server farm
查看>>
clone github报Permission denied (publickey) 解决方案
查看>>
(转载)利用C#读取excel
查看>>
利用Zabbix监控Nginx
查看>>