如果你不能使用另一个列表,你可以通过保留通过迭代器处理的元素数量的计数来解决你的问题,并将其与列表的原始大小进行比较:所有新元素都将在列表的末尾,所以当你达到原始大小时,你可以结束你的循环。

LinkedList queue = new LinkedList(schedules);

int origSize = queue.size();

int currCount = 0;

ListIterator iterator = queue.listIterator();

while (iterator.hasNext()) {

++currCount;

if (currCount >= origSize) {

break; // reached the end of the original collection

}

Schedule schedule = iterator.next();

if(condition)

iterator.add(new Schedule());

}您还可以使用额外的列表来跟踪新元素,并在处理结束后将其添加到原始列表中:

LinkedList queue = new LinkedList(schedules);

LinkedList addQueue = new LinkedList();

ListIterator iterator = queue.listIterator();

while (iterator.hasNext()) {

Schedule schedule = iterator.next();

if(condition)

addQueue.add(new Schedule());

}

queue.addAll(addQueue);另请注意iterator.add()

Inserts the specified element into the list (optional operation). The element is inserted immediately before the next element that would be returned by next, if any, and after the next element that would be returned by previous, if any. (If the list contains no elements, the new element becomes the sole element on the list.) The new element is inserted before the implicit cursor: a subsequent call to next would be unaffected, and a subsequent call to previous would return the new element. (This call increases by one the value that would be returned by a call to nextIndex or previousIndex.)

因此,如果列表中有多个元素,则不会将新元素添加到末尾,而是添加当前元素和next()返回的元素。如果您确实要将新元素放在列表的末尾,请使用queue.add(...)

一般来说,不建议在通过迭代器遍历它时修改集合,所以我建议你使用第二种方法(在单独的列表中收集额外的元素并在最后将它们添加到原始集合中)

java列表末尾添加元素_在迭代它时将元素添加到Java LinkedList的末尾相关推荐

  1. java中override快捷键_【基础回溯1】面试又被 Java 基础难住了?推荐你看看这篇文章。...

    本文已经收录自 https://github.com/Snailclimb/JavaGuide  (59k+ Star):[Java学习+面试指南] 一份涵盖大部分Java程序员所需要掌握的核心知识. ...

  2. java无ide编译_[转]无IDE时编译和运行Java

    本文由 ImportNew - Grey 翻译自 dzone.欢迎加入Java小组.转载请参见文章末尾的要求. 最近Java subreddit出现了一篇"在没有IDE的情况下编译Java包 ...

  3. java写便签_如何编写一个便签程序(用Java语言编写)

    如何编写一个便签程序(用Java语言编写) 热度:336   发布时间:2011-02-18 11:44:16 如何编写一个便签程序(用Java语言编写) 因为以前没有好好学习Java,都搞忘了,请大 ...

  4. java 安卓客户端开发_《安卓网络编程》之第一篇 java环境下模拟客户端、服务器端...

    1.Socket简介 在网络上的两个程序通过一个双向的通信连接实现数据的交换,这个双向链路的一端称为一个Socket.Socket通常用来实现客户方和服务方的连接.Socket是TCP/IP协议的一个 ...

  5. Java开发研究生薪资_转行学什么技术最赚钱?选择java,你绝对不会后悔

    学Java的人现在确实很多,一般选择入行做IT做编程开发的人,基本都把Java作为首选语言. 为什么说选择java是比较好的呢,主要是从以下几个方面来看的: 1.高频率使用 java最为当今最火爆的编 ...

  6. java线程知乎_全网独家!知乎20K点赞的Java并发多线程笔记,简直堪称神仙级文档...

    有很多小伙伴都问过我,头条号里的关于java多线程的文章有pdf版本吗?我其实很想弄pdf,但是前段时间一直没时间去折腾,我把每个Java并发编程核心技术的都整理成了一个又一个的文档.昨天也是终于全部 ...

  7. java——定义一个功能将ArrayList 集合中的重复元素删除(java集合七)

    定义一个功能将ArrayList 集合中的重复元素删除 ArrayList 集合中是允许储存重复元素的 import java.util.ArrayList; import java.util.Ite ...

  8. java迭代是引用_在迭代递归结构时无法获得可变引用:不能一次多次借用可变引用...

    我试图迭代地导航递归数据结构,以便在某个位置插入元素 . 根据我的有限理解,这意味着对结构的根进行可变引用,并通过对其跟随者的引用连续替换它: type Link = Option>; stru ...

  9. java list遍历添加元素_【转】:java遍历List时动态添加和删除元素

    遍历元素最常见的三种方法: // 1.最普通的一种方式 for(int i = 0;i < size;i++) //2.for each方式 for(BEAN b: BEANLIST) //3. ...

最新文章

  1. Ubuntu16.04安装Mininet
  2. Angularjs Services
  3. 【计算机图形学课程】一.MFC基本绘图函数使用方法
  4. HDCVI——一种创新性的高清视频传输方案
  5. Copy-on-Iterate java 代码风格
  6. JS 判断手机操作系统代码
  7. 网络性能测试工具iperf详细使用图文教程【转载】
  8. 上传 mp4 格式判断_视频如何转换成通用的MP4格式?按下这个键,10秒就能搞定...
  9. [转载] Python3十大经典错误及解决办法
  10. php 文件 计数,文件计数问题
  11. 年会季来临,年会会场管理一招搞定!
  12. 怎么看tomcat连接的哪个mysql_如何验证tomcat和mysql连接成功呢
  13. Pycharm+Django之Django学习(1)(初学者)
  14. Outlook邮箱注册详解教程
  15. 根据pc值确定出错的代码位置
  16. JWTUtil工具类使用
  17. ipad显示已停用,连接itunes
  18. Windows上安装Nessus
  19. Android 架构设计与挑选
  20. 菜鸟学JAVA之——static关键字(静态属性和动态属性的区别)

热门文章

  1. java 过期数据_TTL过期的数据包丢失
  2. 亚马逊测评系统软件搭建教程:luminati+候鸟防关联浏览器环境
  3. [读书笔记] Deep learning by Yann LeCun1,2, Yoshua Bengio3 Geoffrey Hinton4,5 on nature
  4. 3ds MAX 2014安装指南
  5. JS中的键盘事件(onkeydown、onkeyup、keyCode)
  6. NPOI实现Word删除表格
  7. Cobalt Strike详细使用教程
  8. unsteady_rel_perm案例学习
  9. 资产监测设备中二极管单向性和三相电电流流向问题
  10. 密码包含-数字、大小写、特殊字符-正则表达式