设计模式-iterator 简单模拟ArrayList与LinkList
来源:互联网 发布:淘宝远程装系统骗局 编辑:程序博客网 时间:2024/05/21 00:55
首先建个List的接口,这里就做两个方法。
package test.Iterator;
public interface List<E> {
void add(E object);
void print();
}
实现ArrayList以及LinkList
Arraylist:
package test.Iterator;
public class ArrayList<E> implements List<E> {
private Object[] objects = new Object[10];
private int index=0;
@Override
public void add(E object) {
if(index>=objects.length){
Object[] o=new Object[objects.length*2];
System.arraycopy(objects, 0, o, 0, objects.length);
objects=o;
}
objects[index]=object;
index++;
}
@Override
public void print() {
for (int i=0;i<index;i++) {
System.out.println(objects[i]);
}
}
}
LinkList:
package test.Iterator;
public class LinkList<E> implements List<E> {
private Node head;
private Node index;
@Override
public void add(E object) {
Node node =new Node();
node.setDate(object);
node.setNext(null);
if(head==null){
head=new Node();
head.setDate(null);
head.setNext(node);
index=head;
}else
index.setNext(node);
index=node;
}
@Override
public void print() {
Node h=this.head.getNext();
while(h!=null){
System.out.println(h.getDate()+" ");
h=h.getNext();
}
}
private class Node{
private E date;
private Node next;
public E getDate() {
return date;
}
public void setDate(E date) {
this.date = date;
}
public Node getNext() {
return next;
}
public void setNext(Node next) {
this.next = next;
}
}
}
使用:
List l1=new LinkList();
List l2=new ArrayList();
for(int i=0; i<200;i++){
l1.add("l1: "+i);
l2.add("l2: "+i);
}
l1.print();
l2.print();
这样的好处是,不论使用数组实现的ArrayList还是使用链表实现的LinkList 对于调用来说,方法都是一致的
- 设计模式-iterator 简单模拟ArrayList与LinkList
- 简单模拟ArrayList-迭代器设计模式
- 简单模拟ArrayList-迭代器设计模式
- LinkList与ArrayList
- 简单模拟ArrayList-迭代器设计模式-马士兵设计模式教程
- 设计模式简单代码之Iterator模式
- 设计模式简单代码之Iterator模式
- 设计模式之Iterator:简单模拟java中集合类的实现
- list与arraylist、linklist的区别
- Vector/Arraylist与Linklist的区别
- List,ArrayList,LinkList与Vector的区别
- Vector/Arraylist与Linklist的区别
- Vector/Arraylist与Linklist的区别
- Java中ArrayList与LinkList的区别
- C++设计模式Visitor+Iterator简单实现
- 简单模拟Build设计模式
- 设计模式--Iterator模式
- 设计模式---Iterator模式
- iOS学习----------图片的简单处理(1)
- Activity切换效果(overridePendingTransition)
- Windows连接不上ss原因
- IO多路复用之select总结
- dispatcherservlet详解
- 设计模式-iterator 简单模拟ArrayList与LinkList
- IO多路复用之poll总结
- BCGControlBar使用方法
- SQLite模糊查询
- 1082. Read Number in Chinese (25)
- http请求 get post
- Java数据结构----栈(Stack)源码分析和个人简单实现
- 安卓开发:两个活动之间携带数据的跳转
- phpmyadmin导入大文件