集合中Iterator迭代器的使用以及实现原理。
collection集合元素通用的获取方式,在取之前先要判断集合中有没有元素,如果有就把这个元素取出来,继续在判断,如果还有就再取出来,一直把集合中的元素全取出来,这种去出方式叫做迭代。
迭代器的作用就是获取集合中的元素的方式。
接口iterator有两个抽象的方法:
- boolean hasnext()判断集合中有没有可以被取的元素。
- next() 去除元素中的下一个元素。
演示代码如下:
public class Iterator_Demo {
public static void main(String[] args) {
Collection<String> coll = new ArrayList<String>();
coll.add("abc");
coll.add("fgh");
coll.add("cde");
// arraylist 重写抽象方法itrator(),返回Iterator接口的实现类的对象。
Iterator<String> it = coll.iterator();
while(it.hasNext()){
String s =it.next();
System.out.println(s);
}
}
}

如上图所示当实例化iterator对象的时候,指针在-1的位置当调用next()方法的时候,指针向下移动一位,直到hasnext()判断没有元素的时候退出循环。
集合中Iterator迭代器的使用以及实现原理。的更多相关文章
- Java 集合、Iterator迭代器、泛型等
01集合使用的回顾 A:集合使用的回顾 a.ArrayList集合存储5个int类型元素 public static void main(String[] args) { ArrayList<I ...
- 18_集合框架_第18天_集合、Iterator迭代器、增强for循环 、泛型_讲义
今日内容介绍 1.集合 2.Iterator迭代器 3.增强for循环 4.泛型 01集合使用的回顾 *A:集合使用的回顾 *a.ArrayList集合存储5个int类型元素 public stati ...
- Java集合、Iterator迭代器和增强for循环整理
集合 集合,集合是java中提供的一种容器,可以用来存储多个数据. 数组的长度是固定的.集合的长度是可变的.集合中存储的元素必须是引用类型数据 1.1 ArrayList集合存储元素 pac ...
- JAVA集合中的迭代器的遍历
JAVA中的迭代器,迭代实质上就是遍历,在JAVA中使用iterator()方法进行迭代.需要注意的是,iterator()方法的返回值是Iterator对象.Iterator对象有三个方法,hasN ...
- 集合之Iterator迭代器
Iterator迭代器概述: java中提供了很多个集合,它们在存储元素时,采用的存储方式不同.我们要取出这些集合中的元素,可通过一种通用的获取方式来完成. Collection集合元素的通用获取 ...
- JAVA基础之集合、Iterator迭代器、泛型及增强for循环
个人理解: 对于集合,首先要明确的是最顶层的接口是Collection接口类,其包含一些基本的方法以便子类调用,不过在定义的时候最好定义好数据类型,以免遍历时还得必须进行向上转型:特别注意的是其没有关 ...
- 大数据之路week01--自学之集合_2(Iterator迭代器)
选代器:是遍历集合的一种方式.迭代器是依赖于集合而存在的.我有一个集合: Collection c = new ArrayList();我们给集合中添加元素: c. add("hello' ...
- java基础(18):集合、Iterator迭代器、增强for循环、泛型
1. 集合 1.1 集合介绍 集合,集合是java中提供的一种容器,可以用来存储多个数据. 在前面的学习中,我们知道数据多了,可以使用数组存放或者使用ArrayList集合进行存放数据.那么,集合和数 ...
- Python 中 Iterator(迭代器)和Iterable(迭代对象)的区别
直接可以用作for循环的数据类型有以下几种: tuple.list.dict.str等, 上述数据类型可以用作for循环的叫做可迭代对象Iterable.可以使用isinstance判断一个对象是否是 ...
随机推荐
- vmware + opensuse windows如何远程登录到suse上
vmware我还是比较偏向7.1.4版本,其他版本装在win7上似乎有点问题.windows平台下,使用vmware + opensuse的网络配置过程如下: 1. 装完vm后,会在本地连接 ...
- 【原创】一个shell脚本记录(实现rsync生产文件批量迁移功能)
#!/bin/bash #Date:2018-01-08 #Author:xxxxxx #Function:xxxxxx #Change:2018-01-17 # #设置忽略CTRL+C信号 trap ...
- HTML入门编写
今天给大家带来的是HTML初步讲解(即第一趴). 问题区: 1.什么是HTML? 先来个百度解说压阵. html,全称Hypertext Markup Language,也就是"超文本链接标 ...
- Excel催化剂开源第13波-VSTO开发之DataGridView控件几个小坑
Excel催化剂内部大量使用了DataGridView,这其中有一些小坑,花了力气才解决的,在此给广大开发者作简单分享. 为何要使用DataGridView而不是其他控件如ListBox.ListVi ...
- [leetcode] 264. Ugly Number II (medium)
263. Ugly Number的子母题 题目要求输出从1开始数,第n个ugly number是什么并且输出. 一开始想着1遍历到n直接判断,超时了. class Solution { public: ...
- .Net微信网页开发之使用微信JS-SDK自定义微信分享内容
第一步.微信JS-SDK的使用步骤,配置信息的生成获取讲解: 关于JS-SDK的使用步骤和timestamp(时间戳),nonceStr(随机串),signature(签名),access_token ...
- C#编程.函数.Main()函数
Main()函数是C#应用程序的入口点,执行这个函数就是执行应用程序.也就是说,在执行过程开始时,会执行Main()函数,在Main()函数执行完毕时,执行过程就结束了. Main()函数可以使用如下 ...
- 把Asp.net Core程序代码部署到Ubuntu(不含数据库)
今天记录一下第一次把.net core 程序发布到linux系统.linux用的是ubuntu Server 18.04版本.运行的IDE是vs 2019,发布出来是.net core 2.2版本. ...
- java练习---3
//程序员:罗元昊 2017.9.6public class World{ public static void main(String[] args){ double p=3.14,i=5.50; ...
- Flink实战(八) - Streaming Connectors 编程
1 概览 1.1 预定义的源和接收器 Flink内置了一些基本数据源和接收器,并且始终可用.该预定义的数据源包括文件,目录和插socket,并从集合和迭代器摄取数据.该预定义的数据接收器支持写入文件和 ...