链表实现:
//方便演示而实现的简陋的单向链表listpublic class LinkList<T> implements List<T>{ private int size; //存放的元素个数,会默认初始化为0 private Node<T> first; //首节点,默认初始化为null @Override public Iterator<T> iterator() { return new MyIterator(); } @Override public boolean add(T t) { if(size==0){ first = new Node<T>(t,null); size; return true; } Node<T> node = first; while(node.next!=null) node = node.next; node.next = new Node<T>(t,null); size; return true; } //链表节点 private static class Node<T>{ T data; Node<T> next; Node(T data,Node<T> next){ this.data = data; this.next = next; } } //遍历器 private class MyIterator implements Iterator<T>{ private Node<T> next; //下一个节点 MyIterator(){ next = first; } @Override public boolean hasNext() { return next != null; } @Override public T next() { T data = next.data; next = next.next; return data; } }}
使用上述代码(模式的使用):
package com.anxpp.designpattern.factorymethod;public class TestUse { public static void main(String args[]){ //分别定义两种结构 List<Integer> array = new ArrayList<Integer>(); List<Integer> link = new LinkList<Integer>(); //添加数据 for(int i = 1;i < 8; i){ array.add(i); link.add(i); } //获得迭代器 Iterator<Integer> ai = array.iterator(); Iterator<Integer> li = link.iterator(); //遍历并输出 while(ai.hasNext()) System.out.print(ai.next()); System.out.println(); while(li.hasNext()) System.out.print(li.next()); }}
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-33893-5.html
如果中国人取越南
那些无节操大队都跑哪去了