在集合类框架中,List是使用比较多的一种

List

 |---Arraylist  内部维护的是一个数组,查找快增删慢

 |---LinkedList  底层是链表,增删快查询慢。

 |---Vctor线程安全的现在已经不用。

我们知道任何集合都可以返回迭代器,这里的list也是的,但是list可以返回list庄永迭代器,ListIterator。这都不是要说的重点,要是的重点在下面。

  1、假如说我们现在有一个list,然后我们获取list的Iterator了。如果没有使用it.next(),就直接使用remove方法的话,那么就会报错

  2、对于 Iterator 的子接口ListIterator 在迭代list 集合时,还可以对元素进行添加add(obj)),修改set(obj)的操作。

要说的内容看下面一段代码:

 1 public void test() throws Exception {
 2
 3         ArrayList list = new ArrayList();
 4         // 增加:add() 将指定对象存储到容器中
 5         list.add("计算机网络");
 6         list.add("现代操作系统");
 7         list.add("java编程思想");
 8         list.add("java核心技术");
 9         list.add("java语言程序设计");
10         System.out.println(list);
11
12         ListIterator lit = list.listIterator();
13         lit.next(); // 计算机网络
14         lit.next(); // 现代操作系统
15         System.out.println(lit.next()); // java编程思想
16         //用指定元素替换 next 或 previous 返回的最后一个元素
17         lit.set("平凡的世界");// 将java编程思想替换为平凡的世界,如果这里使用的是lit.add的话,将会在"java编程思想"后面添加一个“平凡的世界”
18         System.out.println(list);
19     }

输出的内容将会是:

[计算机网络, 现代操作系统, java编程思想, java核心技术, java语言程序设计]
java编程思想
[计算机网络, 现代操作系统, 平凡的世界, java核心技术, java语言程序设计]

3、使用ListIterator实现倒序输出

 1 import java.util.ArrayList;
 2 import java.util.ListIterator;
 3
 4 public class Demo2 {
 5     public static void main(String[] args) {
 6         ArrayList list = new ArrayList();
 7         // 增加:add() 将指定对象存储到容器中
 8         list.add("计算机网络");
 9         list.add("现代操作系统");
10         list.add("java编程思想");
11         list.add("java核心技术");
12         list.add("java语言程序设计");
13         System.out.println(list);
14         // 获取List专属的迭代器
15         ListIterator lit = list.listIterator();
16         while (lit.hasNext()) {
17             String next = (String) lit.next();
18             System.out.println(next);
19         }
20         System.out.println("***************");
21         while (lit.hasPrevious()) {
22             String next = (String) lit.previous();
23             System.out.println(next);
24         }
25
26     }
27 }

转载于:https://www.cnblogs.com/OliverZhang/p/6018996.html

javaList容器中容易忽略的知识点相关推荐

  1. CSS中容易忽略的知识点集锦

    CSS中的一些冷知识 长度单位 在CSS样式层叠表中,我们可使用到的长度单位一般有如下的几种方式: 像素:px 百分比 em: 这是一个相对单位,是相对于当前元素的字体大小进行计算,也就是说 1em= ...

  2. FastJson序列化Json自定义返回字段,普通类从spring容器中获取bean

    前言: 数据库的字段比如:price:1 ,返回需要price:1元. 这时两种途径修改: ① 比如sql中修改或者是在实体类转json前遍历修改. ②返回json,序列化时候修改.用到的是fastj ...

  3. 容器中的JVM资源该如何被安全的限制?

    前言 Java与Docker的结合,虽然更好的解决了application的封装问题.但也存在着不兼容,比如Java并不能自动的发现Docker设置的内存限制,CPU限制. 这将导致JVM不能稳定服务 ...

  4. .NET程序在Linux容器中的演变

    本文讲的是.NET程序在Linux容器中的演变[编者的话]Linux容器技术已被开发人员所熟知,现在.NET程序可以跑在Docker容器中,这为以Windows中心的开发人员带来了好处. [上海站|3 ...

  5. 5种样式实现div容器中三图摆放实例对比说明

    代码地址如下: http://www.demodashi.com/demo/11593.html 效果演示: demo点查看效果 需求说明: 如下图所示为设计图,希望在图片上传无规则无规律的情况下实现 ...

  6. 查看docker内部路径_web应用在Docker容器中部署(Windows)

    前言 容器化是软件开发的一种方法,通过该方法可将应用程序或服务.其依赖项及其配置(抽象化为部署清单文件)一起打包为容器映像. 容器化应用程序可以作为一个单元进行测试,并可以作为容器映像实例部署到主机操 ...

  7. python学习--关注容易被忽略的知识点--(五)面向对象编程

    本系列文章回顾了 python大部分关键的知识点,关注那些容易被忽略的知识点.适用于有一定python基础的python学习者. 本系列文章主要参考廖雪峰的python学习网站.该学习网站内容全面,通 ...

  8. python学习--关注容易被忽略的知识点--(四)函数式编程

    本系列文章回顾了 python大部分关键的知识点,关注那些容易被忽略的知识点.适用于有一定python基础的python学习者. 本系列文章主要参考廖雪峰的python学习网站.该学习网站内容全面,通 ...

  9. python学习--关注容易被忽略的知识点--(三)高级特性

    本系列文章回顾了 python大部分关键的知识点,关注那些容易被忽略的知识点.适用于有一定python基础的python学习者. 本系列文章主要参考廖雪峰的python学习网站.该学习网站内容全面,通 ...

最新文章

  1. JS动态生成的元素,其对应的方法不响应(比如单击事件,鼠标移动事件等)...
  2. 阿里云ECS上环境搭建(virtualenv+flask+gunicorn+supervisor+nginx)
  3. 8 一点就消失_消失的莉莉安(26)
  4. Service Worker,Web Worker,WebSocket的对比
  5. 仰望星空后,更将脚踏实地!
  6. Python模拟实现multipart/form-data格式上传图片文件
  7. 关于Android中使用Enum的一点总结
  8. 刚刚,2021 ACM Fellow放榜!李飞飞、谢涛、刘铁岩等13名华人学者当选
  9. WPF捕获事件即使这个事件被标记为Handled
  10. 我的世界java出生蘑菇岛,《我的世界》出生就有蘑菇岛和海底神庙的地图,附近还有村庄!...
  11. 用python生成一段关于文字的二维码(关于刷网课的)
  12. 在线教育平台项目——设计 接口定义
  13. Microsoft Office 2016 官方中文版
  14. bugku bingo题解
  15. Game Center
  16. 【SandQuant 量化投资】詹姆斯·托宾:风险条件下的流动性偏好行为
  17. [2016ACM多校] HDU5784 极角序 正难则反
  18. 同花顺镰刀三头牛指标公式源码
  19. saltstack配置管理和数据系统
  20. R-FCN: Object Detection via Region-based Fully Convolutional Networks

热门文章

  1. Cacti(一)之“better-cacti-templates”
  2. WCF技术剖析之二十五: 元数据(Metadata)架构体系全景展现[WS标准篇]
  3. 机械制图中外螺纹的画法_机械制图中图纸上的各种符号代表什么意思?
  4. Cannot initialize a parameter of type ‘NSArray<id<RCTBridgeModule>> *‘ with an rvalue of type ‘NSArr
  5. Xamarin 2017.9.19更新
  6. Java写文件的缓冲区有多大_java – 将FileChannel#write总是写入整个缓冲区...
  7. flowable设计器节点属性扩展_Flowable-流程定义扩展属性
  8. python 最小硬币数_程序以找到要在Python中达到目标的硬币组合数量
  9. python6翻_洗礼灵魂,修炼python(6)--活起来的代码+列表
  10. java中let_java Signleton模式详解及示例代码