如何用java按需定制自己的迭代器

如何用java按需定制自己的迭代器,第1张

链表的一些方法使用和迭代器的使用(把链表内的元素迭代出),你可以看下~ import javautil;public class test11 {

static LinkedList list = new LinkedList();

String[] arrays = {"1","2","3","4","5"};

static Iterator it ;

public static void main(String[] args) {

test11 t = new test11();

tuseLinkedList(list);

tuseIterator(list,it);

}//链表的使用

public void useLinkedList(LinkedList list)

{

for(int i = 0;i < 5;i++)

listadd(arrays[i]);//把数组的元素都添加到链表

Systemoutprintln(" *** 作前的长度:"+listsize());//打印出链表的长度

Systemoutprintln("此列表的头(第一个元素)为:"+listpeek());/peek() 找到但不移除此列表的头(第一个元素)。/

Systemoutprintln("查找后的长度:"+listsize());

Systemoutprintln("移除的元素为:"+listpoll()); /poll() 找到并移除此列表的头(第一个元素)。/

Systemoutprintln("移除后的长度:"+listsize());

Systemoutprintln("返回第一个元素:"+listgetFirst());//getFirst() 返回此列表的第一个元素。

Systemoutprintln("返回最后一个元素:"+listgetLast());//getLast() 返回此列表的最后一个元素。

if(listcontains("4"))//boolean contains(Object o) 如果此列表包含指定元素,则返回 true。

Systemoutprintln("存在此元素");

else

Systemoutprintln("不存在此元素");

}//迭代器的使用

public void useIterator(LinkedList list,Iterator it)

{

it = listiterator();

//将链表的元素迭代出并打印

while(ithasNext())

Systemoutprint(itnext()+"\t");

}

}

Collection是集合类的接口,Java中的迭代器是对集合中的对象进行 *** 作的,所以把方法中的参数指定为Collection是为了更好的降低Java程序的耦合性,实现若耦合连接,更直白的说:把参数指定为所有集合类的接口(相当于Object类)以后,不论你传进来的是List还是Set,都可以正常的进行迭代。

itnext()每次调用都会跳到下一个元素,你在if条件里用2次,相当于|| *** 作符前后获取的对象都不一样了,明白?当前一个next方法取到的是最后一个元素时,后面的next方法就会抛你上面的异常了。

由于Java中数据容器众多,而对数据容器的 *** 作在很多时候都具有极大的共性,于是Java采用了迭代器为各种容器提供公共的 *** 作接口。使用Java的迭代器iterator可以使得对容器的遍历 *** 作完全与其底层相隔离,可以到达极好的解耦效果。下面是一个使用迭代器遍历一个序列化和非序列化容器的例子。

mport javautil;

publicclass TestIterator {

public static void main(String[] args) {

//创建一个list 它是一个序列化的数据

List list=new ArrayList();

//创建一个map,它是一个非序列化的数据

Map map=new HashMap();

for(int i=0;i<10;i++){

//向容器中添加数据

listadd(new String("list"+i) );

mapput(i, new String("map"+i));

}

//序列化了的数据创建迭代器。

Iterator iterList= listiterator();//List接口实现了Iterable接口

//进行遍历 如果容器中有下一个数据,就获取下一个数据并打印出来

while(iterListhasNext()){

String strList=(String)iterListnext();

Systemoutprintln(strListtoString());

}

//创建非序列化数据的迭代器,要先将其序列化

Iterator iterMap=mapentrySet()iterator();

//进行遍历 如果容器中有下一个数据,就获取下一个数据并打印出来

while(iterMaphasNext()){

MapEntry strMap=(MapEntry)iterMapnext();

Systemoutprintln(strMapgetValue());

}

}

}

这些都是一些基础的Java知识,在秒秒学的网站上查看资料。

链表的一些方法使用和迭代器的使用(把链表内的元素迭代出),你可以看下~ import javautil;public class test11 {

static LinkedList list = new LinkedList();

String[] arrays = {"1","2","3","4","5"};

static Iterator it ;

public static void main(String[] args) {

test11 t = new test11();

tuseLinkedList(list);

tuseIterator(list,it);

}//链表的使用

public void useLinkedList(LinkedList list)

{

for(int i = 0;i < 5;i++)

listadd(arrays[i]);//把数组的元素都添加到链表

Systemoutprintln(" *** 作前的长度:"+listsize());//打印出链表的长度

Systemoutprintln("此列表的头(第一个元素)为:"+listpeek());/peek() 找到但不移除此列表的头(第一个元素)。/

Systemoutprintln("查找后的长度:"+listsize());

Systemoutprintln("移除的元素为:"+listpoll()); /poll() 找到并移除此列表的头(第一个元素)。/

Systemoutprintln("移除后的长度:"+listsize());

Systemoutprintln("返回第一个元素:"+listgetFirst());//getFirst() 返回此列表的第一个元素。

Systemoutprintln("返回最后一个元素:"+listgetLast());//getLast() 返回此列表的最后一个元素。

if(listcontains("4"))//boolean contains(Object o) 如果此列表包含指定元素,则返回 true。

Systemoutprintln("存在此元素");

else

Systemoutprintln("不存在此元素");

}//迭代器的使用

public void useIterator(LinkedList list,Iterator it)

{

it = listiterator();

//将链表的元素迭代出并打印

while(ithasNext())

Systemoutprint(itnext()+"\t");

}

}

以上就是关于如何用java按需定制自己的迭代器全部的内容,包括:如何用java按需定制自己的迭代器、java迭代器、JAVA迭代器的问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9308281.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存