链表的一些方法使用和迭代器的使用(把链表内的元素迭代出),你可以看下~ 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迭代器的问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)