Java数据结构学习—Iterator接口

迭代器是一个对象,它能是我们迭代集合中的所以元素

在Java集合类API中,Iterator接口很小,只包含三个方法:

1.boolean hasNext()

如果在这次迭代中还有迭代浏览的的项,则返回true。

2.AnyType next()

返回这个迭代器还未看到的对下一个对象的引用,对象变为可见,则迭代器后移。

3.void remove()

三次浏览的最后一个项,在对next的调用之前,只能用一次这种方法。

每个集合都定义了自己的Iterator接口的实现,对java.util包中的

用户而言,此实现在不可见的类中。

实例:基于继承的迭代器和工厂方法

package com.demo.hephec;

public class MyContainer{

Obeject [] items;

int size;

public Iterator iterator(){

return new MyContainerInterator(this);

}

//othre method not shown.

}

//接口Interator

package com.demo.hephec;

public interface Interator{

boolean hasNext();

Object next();

}

//实现接口的迭代器类

package com.demo.hephec;

class MyContainerInterator implements Interator{

private current int =0;

private MyContainer container;

MyContainerInterator(MyContainer c){

container =c;

}

public boolean hasNext(){

return current<container.size();

}

public Object next(){

container,items[currrent++];

}

}

//main方法

public static void main(String[] args){

MyContainer container=new MyContainer();

container.add("3");

container.add("5");

System.out.println("Container content:"):

Interator itr=container.interator();

while(itr.hasNext()){

System.out.println(itr.next());

}

}

Java数据结构学习—Iterator接口

时间: 2024-08-11 16:20:17

Java数据结构学习—Iterator接口的相关文章

java数据结构学习之—Collection接口

Collection接口代表一组对象,这组对象称为它的元素,有些实现(如链表)是无序的,有些实现(集合和映射)是有序的,有些实现是允许重复的,而有些实现不允许重复,从java5开始,Collection接口和整个集合类API都使用泛型,所有容器都支持一下操作: 1.boolean isEmpty() 如果容器不包含任何元素,则返回true,否则返回false. 2.int size() 返回容器中元素的个数 3.boolean add(AnyType x) 将项X添加到容器中,如果操作成功,则返

Java数据结构学习—Collections类

java.util 类 Collections java.lang.Object java.util.Collections public class Collections extends Object 此类完全由在 collection 上进行操作或返回 collection 的静态方法组成.它包含在 collection 上操作的多态算法,即"包装器",包装器返回由指定 collection 支持的新 collection,以及少数其他内容. 如果为此类的方法所提供的 colle

java基础学习总结——接口

java基础学习总结——接口 一.接口的概念 JAVA是只支持单继承的,但现实之中存在多重继承这种现象,如“金丝猴是一种动物”,金丝猴从动物这个类继承,同时“金丝猴是一种值钱的东西”,金丝猴从“值钱的东西”这个类继承,同时“金丝猴是一种应该受到保护的东西”,金丝猴从“应该受到保护的东西”这个类继承.这样金丝猴可以同时从 “动物类”.“值钱的东西类”.“应该受到保护的东西” 这三个类继承,但由于JAVA只支持单继承,因此金丝猴只能从这三个类中的一个来继承,不能同时继承这三个类.因此为了封装现实生活

java数据结构学习(一)之二分查找

  二分查找法与我们在孩童时期玩过的猜数的游戏一样,这个游戏里一个朋友会让你猜他正想的一个1至100的数,当你猜了一个数后,他会告诉你三种选择的一个:你猜的比她想的大,或小,或猜中了.为了能用最少的次数猜中,必须从50开始猜,如果她说你猜的太小,则推出那个数在51-100之间,所以下一次猜75((51+100)/2),如果她说有些大,那你就会在51-74之间才,下一次猜(51+74)/2=62.直到猜中她所给的数. 下面给出我们猜1-100的数,key为33的过程: 只需7次就可以猜中答案.下面

java中的Iterator接口

Iterator接口 Iterator接口也是Java集合框架的成员,但它与Collection系列.Map系列的集合不一样:Collection系列集合.Map系列集合主要用于盛装其他对象,而Iterator则主要用于遍历(即迭代访问)Collection集合中的元素,Iterator对象也被称为迭代器. Iterator接口里定义了如下4个方法: –boolean hasNext():如果被迭代的集合还元素没有被遍历,则返回true. –Object next():返回集合里下一个元素. –

【Java数据结构学习笔记之二】Java数据结构与算法之队列(Queue)实现

  本篇是数据结构与算法的第三篇,本篇我们将来了解一下知识点: 队列的抽象数据类型 顺序队列的设计与实现 链式队列的设计与实现 队列应用的简单举例 优先队列的设置与实现双链表实现 队列的抽象数据类型   队列同样是一种特殊的线性表,其插入和删除的操作分别在表的两端进行,队列的特点就是先进先出(First In First Out).我们把向队列中插入元素的过程称为入队(Enqueue),删除元素的过程称为出队(Dequeue)并把允许入队的一端称为队尾,允许出的的一端称为队头,没有任何元素的队列

树结构的自定义及基本算法(Java数据结构学习笔记)

数据结构可以归类两大类型:线性结构与非线性结构,本文的内容关于非线性结构:树的基本定义及相关算法.关于树的一些基本概念定义可参考:维基百科 树的ADT模型: 根据树的定义,每个节点的后代均构成一棵树树,称为子树.因此从数据类型来讲,树.子树.树节点是等同地位,可将其看作为一个节点,用通类:Tree表示.如下图所示: 图:Tree ADT模型示意图 可采用"父亲-儿子-兄弟"模型来表示树的ADT.如图所示,除数据项外,分别用三个引用表示指向该节点的父亲,儿子,兄弟. 图:"父亲

java基础学习总结-接口

原文链接:http://www.cnblogs.com/xdp-gacl/p/3651121.html 一.接口的概念 JAVA是只支持单继承的,但现实之中存在多重继承这种现象,如"金丝猴是一种动物",金丝猴从动物这个类继承,同时"金丝猴是一种值钱的东西",金丝猴从"值钱的东西"这个类继承,同时"金丝猴是一种应该受到保护的东西",金丝猴从"应该受到保护的东西"这个类继承.这样金丝猴可以同时从 "动

【Java数据结构学习笔记之一】线性表的存储结构及其代码实现

应用程序后在那个的数据大致有四种基本的逻辑结构: 集合:数据元素之间只有"同属于一个集合"的关系 线性结构:数据元素之间存在一个对一个的关系 树形结构:数据元素之间存在一个对多个关系 图形结构或网状结构:数据元素之间存在多个对多个的关系 对于数据不同的逻辑结构,计算机在物理磁盘上通常有两种屋里存储结构 顺序存储结构 链式存储结构 本篇博文主要讲的是线性结构,而线性结构主要是线性表,非线性结构主要是树和图. 线性表的基本特征: 总存在唯一的第一个数据元素 总存在唯一的最后一个数据元素 除