分别定义集合类 ArrayList和LinkedList类,实现Collection接口,实现具体的方法
/**
* @author lisa
* imitate the Collection of JDK
*/
public interface Collection<E> {
public void add(E e);
public int size();
public Iterator iterator();
}
public class LinkedList<E> implements Collection<E> {
private Node head = null;
private Node tail = null;
private int size;
@Override
public void add(E e) {
Node n = new Node(e,null);
if(head == null){
head = n;
tail = n;
}else{
tail.setNext(n);
tail = n;
}
size++;
}
@Override
public int size() {
// TODO Auto-generated method stub
return size;
}
@Override
public Iterator iterator() {
return new LinkedListIterator();
}
private class LinkedListIterator implements Iterator {
private int currentIndex;
@Override
public boolean hasNext() {
if(currentIndex < size){
return true;
}
return false;
}
@Override
public Object next() {
Node node = head;
for(int i=1;i<=currentIndex;i++){
node = node.getNext();
}
currentIndex++;
return node.getData();
}
}
}
public class Node {
private Object data;
private Node next;
public Node(Object data, Node next) {
super();
this.data = data;
this.next = next;
}
public Object getData() {
return data;
}
public void setData(Object data) {
this.data = data;
}
public Node getNext() {
return next;
}
public void setNext(Node next) {
this.next = next;
}
}
注意LinkedList的思想:head标示链表列的头部,tail标示最后一个节点,每当有节点加入时,将当前的tail的next指向新节点,并将新节点作为新的tail
相关推荐
参考:马士兵 Java设计模式 Iterator 1.首先定义一个容器Collection接口. 2.定义一个Iterator迭代器的接口 3.定义一个ArrayList,实现Collection接口,并写一个实现了Iterator接口的内部类。 4.编写测试程序TestMain...
所谓Iterator模式,即是Iterator为不同的容器提供一个统一的访问方式。本文以java中的容器为例,模拟Iterator的原理。需要的朋友可以参考下
设计模式C++学习之迭代器模式(Iterator)
设计模式之_Iterator_00_源码
提供一种方法顺序访问一个聚合对象中各个元素,而又不需暴露该对象的内部表示。
C#面向对象设计模式 (行为型模式) Iterator 迭代器模式 视频讲座下载
设计模式之 Iterator(迭代器) 这个模式已经被整合入Java的Collection.在大多数场合下无需自己制造一个Iterator,只要将对象装入Collection中, 直接使用 Iterator 进行对象遍历。 设计模式之 Template(模板方法) ...
IteratorPattern 迭代设计模式
迭代器(Iterator) 用意:可以顺序地访问一个集合中的元素而不必暴露集合中的内部表象。
23种设计模式之二十二(行为模式)Iterator模式
C#面向对象设计模式纵横谈(18):(行为型模式) Iterator 迭代器模式 (Level 300)
【Java设计模式】(1)迭代器模式Iterator(代码)
Head First 设计模式 (九) 迭代器与组合模式(Iterator & Composite pattern) C++实现
在这里与各位分享本人从网络上下载的C#面向对象设计模式纵横谈系列视频,共有25节,除了第一节需要各位贡献一点资源分以作为对本人上传资源的回馈,后面的其他资源均不需要资源分。敬请期待。 这是第18节:行为型...
设计模式精解-GoF 23 种设计模式解析附 C++实现源码 目 录 引 言 0.1 设计模式解析(总序) 0.2 设计模式解析后记 0.3 与作者联系 1 创建型模式 1.1 Factory模式 1.2 AbstactFactory模式 1.3 Singleton...
iterator-demo 迭代器设计模式demo
《研磨设计模式》完整覆盖GoF讲述的23个设计模式并加以细细研磨。初级内容从基本讲起,包括每个模式的定义、功能、思路、结构、基本实现、运行调用顺序、基本应用示例等,让读者能系统、完整、准确地掌握每个模式,...
C#面向对象设计模式纵横谈(18):(行为型模式) Iterator 迭代器模式 C#面向对象设计模式纵横谈(19):(行为型模式) Observer 观察者模式 C#面向对象设计模式纵横谈(20):(行为型模式) Chain Of Responsibility ...
C++设计模式代码资源21_Iterator.zip