模拟集合的Iterator
来源:互联网 发布:微信 mac dmg 编辑:程序博客网 时间:2024/05/10 14:39
这是一个自定义的链表集合,来模拟集合中的Iterator这个迭代器,具体代码如下。
节点类:
package com.qbd.duan.iterator;
public class Node {
private Object object;
private Node node;
public Node(Object object, Node node) {
this.object = object;
this.node = node;
}
public Object getObject() {
return object;
}
public void setObject(Object object) {
this.object = object;
}
public Node getNode() {
return node;
}
public void setNode(Node node) {
this.node = node;
}
}
迭代器接口:
package com.qbd.duan.iterator;
public interface Iterator {
public boolean hasNext();
public Object next();
}
集合抽象接口:
package com.qbd.duan.iterator;
public interface Collection{
public void add(Object o);
public void remove(Object o);
public Iterator iterator();
public int size();
}
自定义链表类:
package com.qbd.duan.iterator;
public class LinkendList implements Collection {
private Node head=null;
private Node last=null;
private int size;
@Override
public void add(Object o) {
// TODO Auto-generated method stub
Node node=new Node(o, null);
if(head==null){
head=node;
last=node;
}
last.setNode(node);
last=node;
size++;
}
@Override
public void remove(Object o) {
// TODO Auto-generated method stub
}
@Override
public Iterator iterator() {
// TODO Auto-generated method stub
return new ListIterator();
}
public class ListIterator implements Iterator{
private int now=0;
@Override
public boolean hasNext() {
// TODO Auto-generated method stub
if(now>=size){
return false;
}
return true;
}
@Override
public Object next() {
// TODO Auto-generated method stub
now++;
Object object=null;
Node first=head;
for(int i=0;i<now-1;i++){
first=first.getNode();
}
object=first.getObject();
return object;
}
}
public int size() {
// TODO Auto-generated method stub
return size;
}
}
测试类:
package com.qbd.duan.iterator;
public class Main {
public static void main(String[] args) {
Collection c=new LinkendList();
for(int i=0;i<10;i++){
c.add(i);
}
Iterator iterator=c.iterator();
while(iterator.hasNext()){
System.out.println(iterator.next());
}
}
}
- 模拟集合的Iterator
- Iterator 集合的迭代
- 集合-Iterator
- Iterator iterator():迭代器,集合的专用遍历方式
- Java集合的遍历Iterator的方法
- Java模拟容器的迭代器(Iterator模式)
- 集合的遍历:Iterator接口、foreach
- 黑马程序员------集合的遍历Iterator/ListIterator
- Iterator 关键字,用于集合的遍历
- java集合----Iterable和Iterator的区别
- java集合迭代器(Iterator)的认识
- iterator、for遍历集合的优缺点
- Java集合Iterator迭代器的实现
- 集合(一)集合的引入、Collection和Iterator
- 模拟实现list(iterator)
- 集合-迭代器Iterator
- iterator遍历集合解析
- iterator 遍历集合
- Problem C: 结构体---职工信息结构体
- 使用Dockerfile构建镜像
- XML--- XML文档类型定义(DTD)
- Problem F: C++结构体之统计最高最低分
- 区块链的七年之痒
- 模拟集合的Iterator
- php中三种数据库的连接方式
- Problem G: B 结构体--统计投票
- java8快速入门
- 关于数据库管理工具的使用----把数据库中的表等生成word文档
- 如何在Django中使用mongodb数据库?
- Block (四) block_callBack VS Protocol_Delegate
- l啦啦啦
- C语言基础 生成从min到max范围内的一个随机数