package test.edu.inter;
public interface IteratorObj {
/**
* 移动到第一个元素
*/
public void first();
/**
* 移动到下一个元素
*/
public boolean hasNextItem();
/**
* 返还当前元素
*/
public Object currentItem();
}
package test.edu.inter;
public interface DataSet {
public IteratorObj getIterator();
}
package test.edu.inter;
public class Iterator1 implements IteratorObj {
private Dataobj set;
private int size;
private int index=0;
public Iterator1(Dataobj set){
this.set = set;
this.size = set.getSize();
}
@Override
public void first() {
// TODO Auto-generated method stub
this.index = 0;
}
@Override
public boolean hasNextItem() {
if(index<size){
return true;
}
return false;
}
@Override
public Object currentItem() {
Object ob = set.getItem(index);
if(index<size){
index++;
}
return ob;
}
}
package test.edu.inter;
public class Dataobj implements DataSet {
private Object[] objArray = null;
/**
* 传入聚合对象
*/
public Dataobj(Object[] objArray){
this.objArray = objArray;
}
@Override
public IteratorObj getIterator() {
return new Iterator1(this);
}
public Object getItem(int index){
return objArray[index];
}
public int getSize(){
return objArray.length;
}
}
package test.edu.inter;
public class Client {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String[] str={"12312","dasda","dasd","12d","asd"};
Dataobj ao = new Dataobj(str);
IteratorObj io = ao.getIterator();
while(io.hasNextItem()){
System.out.println(io.currentItem());
}
}
}
12312 dasda dasd 12d asd
import java.util.Iterator;
public interface Itr extends Iterator{
//再次调用next()方法时所用的指标
int cursor = 0;
//最近一次调用时所用的指标
int lastRet = -1;
int expectedModCount = modCount;
public boolean hasNext(){
return cursor!=size();
}
public Object next(){
try{
Object next = get(cursor);
checkForComodification();
lastRet = cursor++;
return next;
}catch(IndexOutOfBoundsException e){
checkForComodification();
throw new NoSuchElementException();
}
}
//删除最后遍历过的元素,remove()方法只能删除最后遍历的元素
public void remove(){
if(lastRet ==-1)
throw new IllegalStateException();
checkForComodification();
try{
AbstractList.this.remove(lastRet);
if(lastRet<cursor)
cursor--;
lastRet = -1;
expectedModCount = modCount;
}catch(IndexOutOfBoundsException e){
throw new ConcurrentModificationException();
}
}
public void checkForComodification(){
if(modCount!=expectedModCount)
throw new ConcurrentModificationException();
}
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有