Java中LinkedList使用Iterator遍历的问题

问题描述

老师留的作业题,实在是头疼。。。。importjava.util.*;publicclassController{privateLinkedList<Event>eventList=newLinkedList<Event>();publicvoidaddEvent(Eventc){eventList.add(c);}publicvoidrun(){LinkedList<Event>eventListCopy=newLinkedList<Event>(eventList);ListIterator<Event>it=eventListCopy.listIterator();while(it.hasNext()){Evente=it.next();e.action();//action()函数会调用addEvent()函数添加元素System.out.println(e.description());//输出状态}}}

主函数:publicstaticvoidmain(String[]args){GreenhouseControlsgc=//类GreenhouseControls继承自ControllernewGreenhouseControls();longtm=System.currentTimeMillis();gc.addEvent(gc.newRestart(tm));gc.run();}

=====================================================action()函数利用addEvent()添加一系列元素但是在while()中却只能输出第一个元素,为什么?=====================================================参考资料:《ThinkinginJava4th》(中文版)第11章练习13

解决方案

解决方案二:
人工置顶
解决方案三:
在你的另一个贴回答了http://topic.csdn.net/u/20100507/15/ab3eb59f-cc9e-4eab-ba44-8c506c523045.html?seed=1567468309&r=65254384#r_65254384

时间: 2024-10-05 22:46:51

Java中LinkedList使用Iterator遍历的问题的相关文章

JAVA中ListIterator和Iterator详解与辨析

    在使用java集合的时候,都需要使用Iterator.但是java集合中还有一个迭代器ListIterator,在使用List.ArrayList.LinkedList和Vector的时候可以使用.这两种迭代器有什么区别呢?下面我们详细分析.这里有一点需要明确的时候,迭代器指向的位置是元素之前的位置,如下图所示:               这里假设集合List由四个元素List1.List2.List3和List4组成,当使用语句Iterator it = List.Iterator(

java中map的循环遍历和map的获取值的办法

map的循环遍历方式   代码如下 复制代码 package com.sec.map;     import java.util.HashMap; import java.util.Iterator; import java.util.Map;     public class TestMap {         public static void main(String[] args) {                   Map<String, String> map = new Ha

java中LinkedList和ArrayList性能比对

   代码如下 复制代码 package com.letv.cloud.cdn.jtest;    import java.io.IOException;  import java.util.ArrayList;  import java.util.LinkedList;  import java.util.List;  import java.util.concurrent.TimeUnit;    import org.slf4j.LoggerFactory;    import com.g

java中List集合及其遍历详解_java

1. 首先List<E>集合继承与Collection<E>,是一个接口.    ①  Collection (集合框架是JDK1.2版本出现的)    ②   list:是有序的,元素可以重复,以为该集合体系有索引.      经常用到的是实现该接口的ArrayList和LinkedList类    ③   Arraylist:  底层的数据结构使用的是数组结构,   特点: 查询速度很快,但是增删稍慢.线程不同步          LinkedList: 底层使用的是链表数据结

关于java中linkedlist的remove()方法的问题

问题描述 intend1=1;intend2=2;linkl=newlink(end1,end2);然后有一个linkedlist<link>mylist我的想法是如果mylist中包含了l就从mylist中删除,为什么我直接用mylist.remove(l)总是不能成功删除???请求大家指教,谢谢! 解决方案 解决方案二:link类里有重写过hashCode,equals方法么解决方案三:equals重写了:publicclasslink{intnode1;intnode2;link(int

求帮忙,java中关于数组的组合

问题描述 String arrs={'D','S-X','D','S','C-Z','P'} 数组里的是"大厦的收藏品"的首字母,因为厦和藏都是多音字,现在要求把所有的首字母组合输出如:DSDSCP DXDSZP DXDSCP DSDSZP,一时想不到实现方法 希望给点思路,能上代码更好. 解决方案 import java.util.LinkedList; //采用广度优先遍历 public class BroadFirst { //用于存储遍历情况的列表 private Linked

Java中ArrayList和LinkedList的遍历与性能分析_java

前言 通过本文你可以了解List的五种遍历方式及各自性能和foreach及Iterator的实现,加深对ArrayList和LinkedList实现的了解.下面来一起看看吧. 一.List的五种遍历方式 1.for each循环 List<Integer> list = new ArrayList<Integer>(); for (Integer j : list) { // use j } 2.显示调用集合迭代器 List<Integer> list = new Ar

java中map为什么不能直接使用iterator遍历?

问题描述 java中map为什么不能直接使用iterator遍历? 求教大神:直接使用map的时候方法中不会显示iterator方法,而是要写Set set = map.keySet();才可以使用iterator方法,为什么map和set同为集合,map就不可以直接使用iterator方法?内部逻辑是什么? 解决方案 只有实现的collection集合才有iterator方法,比如List和se接口:而Map接口不能使用iterator方法,需要现获取set视图,即Set set = map.

Java中Collection遍历中删除、合并元素

我的分词结果链表需要合并连续的数字和日期,所以需要熟悉一下Java Collection在遍历的过程中同时删除.合并元素的小trick.自己试验了一下,活用listIterator的previous()和next()方法就可以达到目的. 遍历中删除 数据集 List<Integer> integerList = new LinkedList<Integer>(); for (int i = 1; i <= 10; ++i) {     integerList.add(i);