List

遍历方法有三种:
1. for-each
2. 迭代器 Iterator(ListIterator)
3. for

  • 首选for-each
  • 需要用到迭代器方法时用迭代器,比如next,remove(,add,set)
  • 在遍历过程中需要利用索引进行计算,或显示控制索引
  • for 循环的时候用到了list.get(i),如果这个list不是ArrayList,而是LinkedList,效率会很慢,因为get方法每次都要遍历一次
        // 初始化List<Integer> list = new ArrayList<>();for (int i = 0; i < 10; i++) {list.add(i);}// for-each 因为没有索引,无法修改元素for (Integer value : list) {System.out.println(value);}// Iterator, 可以在遍历过程中删除for (Iterator<Integer> it = list.iterator(); it.hasNext(); ) {Integer value = it.next();System.out.println(value);if (value == 1) {it.remove();}}// ListIterator, 可以在遍历过程中删除,添加和修改for (ListIterator<Integer> listIterator = list.listIterator(); listIterator.hasNext(); ) {Integer value = listIterator.next();if (value == 1) {listIterator.remove(); // 下一次next,指向的是2listIterator.add(-1);  // 下一次next,指向的依然是2} else {listIterator.set(value + 1);}}// for 可以修改元素和显示控制索引for (int i = 0; i < list.size(); i++) {Integer value = list.get(i);System.out.println(value);list.set(i, value + 1); // value + 1if (i == list.size() - 1) {list.set(0, 0);     // list[0] = 0}}

Map

遍历方法有三种:
1. for-each
2. 迭代器 Iterator(ListIterator)
3. for 先遍历key,再使用get方法获取,效率低下,不建议使用

  • 首选for-each
  • 需要用到迭代器方法时用迭代器,比如next,remove
        // 初始化Map<Integer, Integer> map = new HashMap<>();for (int i = 0; i < 10; i++) {map.put(i, i);}// 同时使用key和valuefor (Map.Entry<Integer, Integer> entry : map.entrySet()) {System.out.println("key: " + entry.getKey() + ", value: " + entry.getValue());}// 只使用keyfor (Integer key : map.keySet()) {System.out.println("key = " + key);}// 只使用valuefor (Integer value : map.values()) {System.out.println("value = " + value);}// 使用迭代器,需要在遍历过程中删除Iterator<Map.Entry<Integer, Integer>> iterator = map.entrySet().iterator();while (iterator.hasNext()) {Map.Entry<Integer, Integer> entry = iterator.next();System.out.println("key: " + entry.getKey() + ", value: " + entry.getValue());// remove 1if (entry.getValue() == 1) {iterator.remove();}}System.out.println("after remove 1");for (Map.Entry<Integer, Integer> entry : map.entrySet()) {System.out.println("key: " + entry.getKey() + ", value: " + entry.getValue());}

List/Map 遍历相关推荐

  1. 原生JS forEach()和map()遍历的区别以及兼容写法

    一.原生JS forEach()和map()遍历 共同点: 1.都是循环遍历数组中的每一项. 2.forEach() 和 map() 里面每一次执行匿名函数都支持3个参数:数组中的当前项item,当前 ...

  2. map遍历删除异常:ConcurrentModificationException

    1. map集合单个删除 此时,一般都不会出问题,直接 remove(key) 2. map集合遍历删除多个 此时,若不注意往往容易出现问题,出现 ConcurrentModificationExce ...

  3. java map string stu_Java Map遍历的三种方式 | 学步园

    最近经常碰到Map遍历的问题,在网上查找资料后,记录下,权当备忘~~~~~~ 这里给出了三种遍历的方式,注释中已说明各自方式的优点. package edu.hrbeu.cloud.testIterM ...

  4. go语言map遍历时删除是安全的, 且可以完全删除

    结论: map遍历时删除操作是完全的,且可以完全删除指定的元素 实验结果如下图: 代码如下: package main import ("fmt" ) func main() {x ...

  5. go语言 sync.map遍历时删除可以全部删除

    结论: sync.map遍历时删除操作是完全的,且可以完全删除指定的元素 实验结果下图: 代码如下: package mainimport ("fmt""sync&quo ...

  6. java 轻量级map,java Map 遍历速度最优解

    java Map 遍历速度最优解 第一种: Map map = new HashMap(); Iterator iter = map.entrySet().iterator(); while (ite ...

  7. Map 遍历取值及jstl的取值

    Map 遍历取值及jstl的取值 学习了:http://blog.csdn.net/yanjiaye520/article/details/17354239 1.Java map的便利取值 Java代 ...

  8. Java 集合List、Set、HashMap操作二(Map遍历、List反向、Set删除指定元素,集合只读、TreeMap操作、List转Array、List移动元素)

    Map遍历 import java.util.Map; import java.util.HashMap; import java.util.HashSet; import java.util.Ite ...

  9. java map遍历_Java中Map集合的两种遍历方式

    Java中的map遍历有多种方法,从最早的Iterator,到java5支持的foreach,再到java8 Lambda,让我们一起来看下Java中Map集合的两种遍历方式! 关于遍历Map集合的几 ...

  10. JSX列表渲染(五)——4种写法:基本写法 遍历写法 map遍历写法(常用-加工处理数组的每一项数据,最后形成一个新的数组) 列表遍历可以直接写到表达式中

    JSX列表渲染--4种写法:基本写法 & 遍历写法 & map遍历写法(常用-加工处理数组的每一项数据,最后形成一个新的数组) & 列表遍历可以直接写到表达式中 渲染多个元素 ...

最新文章

  1. MongoDB分片详细说明(ITSOM)
  2. YOLOv4重磅发布,五大改进,二十多项技巧实验,堪称最强目标检测万花筒
  3. java listview颜色_[摘]android listview选中某一行,成选中状态颜色高亮显示
  4. flowable 实现多实例-会签-动态配置人员 参考demo
  5. 解ns方程_流体动力学NS方程的哲学缺陷
  6. 新款iPhone SE来了,从二手市场保值率来看值不值得买?
  7. 文本生成系列之transformer结构扩展(二)
  8. HDU-1159-Common Subsequence
  9. Machine Learning Books List
  10. Qt浅谈之七:抽奖软件(可显示图片和姓名)
  11. matlab arcsin 弧度,角度换算弧度(角度换算弧度计算器)
  12. 如何打开KML和KMZ文件并与卫星影像叠加
  13. Arcgis中的空间插值
  14. 临床试验数据管理系统
  15. 2021年连云港高考成绩查询,2021年连云港高考状元是谁分数多少分,历年连云港高考状元名单...
  16. TCP连接大量CLOSE_WAIT状态问题排查
  17. 【CSS】css文字超出显示省略号/文字超过三行显示省略号..
  18. 全面理解Python迭代器和生成器
  19. 博客图片上传:Typora+PicGo图床
  20. inux下服务器心跳集群脚本

热门文章

  1. 无法访问此网站 localhost 拒绝了我们的连接请求。
  2. 把int转换为char把int转换为char
  3. 【微信支付】Java实现微信APP支付流程
  4. AICON分论坛 | 昇思MindSpore探索人工智能发展新路径
  5. SystemUI架构分析
  6. wps怎么把ppt里的字体一起保存_干货 | 如何快速导出PPT中的文字内容?
  7. nps+Proxifier搭建socks5代理隧道进行内网穿透
  8. java中的双冒号操作符
  9. Tecohoo VD-306S 全高清视频会议摄像机
  10. codeforce 555 div3 题解报告