List/Map 遍历
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 遍历相关推荐
- 原生JS forEach()和map()遍历的区别以及兼容写法
一.原生JS forEach()和map()遍历 共同点: 1.都是循环遍历数组中的每一项. 2.forEach() 和 map() 里面每一次执行匿名函数都支持3个参数:数组中的当前项item,当前 ...
- map遍历删除异常:ConcurrentModificationException
1. map集合单个删除 此时,一般都不会出问题,直接 remove(key) 2. map集合遍历删除多个 此时,若不注意往往容易出现问题,出现 ConcurrentModificationExce ...
- java map string stu_Java Map遍历的三种方式 | 学步园
最近经常碰到Map遍历的问题,在网上查找资料后,记录下,权当备忘~~~~~~ 这里给出了三种遍历的方式,注释中已说明各自方式的优点. package edu.hrbeu.cloud.testIterM ...
- go语言map遍历时删除是安全的, 且可以完全删除
结论: map遍历时删除操作是完全的,且可以完全删除指定的元素 实验结果如下图: 代码如下: package main import ("fmt" ) func main() {x ...
- go语言 sync.map遍历时删除可以全部删除
结论: sync.map遍历时删除操作是完全的,且可以完全删除指定的元素 实验结果下图: 代码如下: package mainimport ("fmt""sync&quo ...
- java 轻量级map,java Map 遍历速度最优解
java Map 遍历速度最优解 第一种: Map map = new HashMap(); Iterator iter = map.entrySet().iterator(); while (ite ...
- Map 遍历取值及jstl的取值
Map 遍历取值及jstl的取值 学习了:http://blog.csdn.net/yanjiaye520/article/details/17354239 1.Java map的便利取值 Java代 ...
- 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 ...
- java map遍历_Java中Map集合的两种遍历方式
Java中的map遍历有多种方法,从最早的Iterator,到java5支持的foreach,再到java8 Lambda,让我们一起来看下Java中Map集合的两种遍历方式! 关于遍历Map集合的几 ...
- JSX列表渲染(五)——4种写法:基本写法 遍历写法 map遍历写法(常用-加工处理数组的每一项数据,最后形成一个新的数组) 列表遍历可以直接写到表达式中
JSX列表渲染--4种写法:基本写法 & 遍历写法 & map遍历写法(常用-加工处理数组的每一项数据,最后形成一个新的数组) & 列表遍历可以直接写到表达式中 渲染多个元素 ...
最新文章
- MongoDB分片详细说明(ITSOM)
- YOLOv4重磅发布,五大改进,二十多项技巧实验,堪称最强目标检测万花筒
- java listview颜色_[摘]android listview选中某一行,成选中状态颜色高亮显示
- flowable 实现多实例-会签-动态配置人员 参考demo
- 解ns方程_流体动力学NS方程的哲学缺陷
- 新款iPhone SE来了,从二手市场保值率来看值不值得买?
- 文本生成系列之transformer结构扩展(二)
- HDU-1159-Common Subsequence
- Machine Learning Books List
- Qt浅谈之七:抽奖软件(可显示图片和姓名)
- matlab arcsin 弧度,角度换算弧度(角度换算弧度计算器)
- 如何打开KML和KMZ文件并与卫星影像叠加
- Arcgis中的空间插值
- 临床试验数据管理系统
- 2021年连云港高考成绩查询,2021年连云港高考状元是谁分数多少分,历年连云港高考状元名单...
- TCP连接大量CLOSE_WAIT状态问题排查
- 【CSS】css文字超出显示省略号/文字超过三行显示省略号..
- 全面理解Python迭代器和生成器
- 博客图片上传:Typora+PicGo图床
- inux下服务器心跳集群脚本