网站首页 > java教程 正文
作者:凯文 @开源Favorer
集合遍历是每一个JAVA程序员的基础必答题,花1分钟跟着小编一起来复习一下我们处理集合遍历都有哪些方法以及如何选择。
Map
方法一:entrySet()。这是平常用的最多也最可取的一种遍历方式
for (Map.Entry<String, Object> entry : map.entrySet()) {
System.out.println("key=" + entry.getKey() + ",value=" + entry.getValue());
方法二:for循环keySet()或value。如果只需要map中的键或者值,你可以通过keySet或values来实现遍历,而不是用entrySet,该方法比entrySet遍历在性能上稍好(快了10%),而且代码更加干净
// 遍历key
for (String key : map.keySet()) {
System.out.println("key=" + key);
}
// 遍历value
for (Object value : map.values()) {
System.out.println("value=" + value);
}
方法三:Iterator。使用Iterator进行遍历Map
Iterator<Map.Entry<String, Object>> entries = map.entrySet().iterator();
while (entries.hasNext()) {
Entry<String, Object> entry = entries.next();
System.out.println("key=" + entry.getKey() + ",value=" + entry.getValue());
}
方法四:for循环keySet再获取keyValue。通过键找值遍历,缺点,效率低,本身从键取值是耗时的操作
for (String key : map.keySet()) {
Object value = map.get(key);
System.out.println("key=" + key + ",value=" + value);
}
List
方法一:最基础的遍历方式:for循环,指定下标长度,使用List集合的size()方法,进行for循环遍历
for (int i = 0; i < list.size(); i++) {
News s = (News)list.get(i);
System.out.println(s.getId()+" "+s.getTitle()+" "+s.getAuthor());
}
方法二:较为简洁的遍历方式:使用foreach遍历List,但不能对某一个元素进行操作(这种方法在遍历数组和Map集合的时候同样适用)
for (News s : list) {
System.out.println(s.getId()+" "+s.getTitle()+" "+s.getAuthor());
}
方法三:适用迭代器Iterator遍历:直接根据List集合的自动遍历
Iterator<News> iter = list.iterator();
while (iter.hasNext()) {
News s = (News) iter.next();
System.out.println(s.getId()+" "+s.getTitle()+" "+s.getAuthor());
}
Set
方法一: forEach
for (Integer i : sets)
{ System.out.print(i + " "); }
方法二: iterator
Iterator<Integer> iterator = sets.iterator();
while (iterator.hasNext()) {
System.out.print(iterator.next() + " ");
}
方法三: stream流
sets.forEach(s -> System.out.print(s + " "));
方法四:for循环
Iterator<Integer> iterator2 = sets.iterator();
for (int i = 0; i < sets.size(); i++)
{ System.out.print(iterator2.next() + " "); }
方法五:forEachRemaining。底层实现while (hasNext()) action.accept(next());
sets.iterator().forEachRemaining(s -> System.out.print(s + " "));
开源Favorer为读者提供了广泛的IT认证类辅导资料,欢迎点击领取「链接」
- 上一篇: ArrayList入门
- 下一篇: 面试难题:List 如何一边遍历,一边删除?
猜你喜欢
- 2024-11-20 学习编程第189天 python编程 遍历字典与列表
- 2024-11-20 女朋友跟我吐槽 Java 中 ArrayList 遍历时删除元素的各种姿势
- 2024-11-20 一篇文章带你弄懂Python基础之列表介绍和循环遍历
- 2024-11-20 Java8 Stream流递归,几行代码搞定遍历树形结构
- 2024-11-20 ArrayList还是LinkedList?性能可差千倍
- 2024-11-20 Java集合-List
- 2024-11-20 如何正确遍历删除List中的元素
- 2024-11-20 python每天学习一点点(遍历列表-for循环)
- 2024-11-20 Java集合框架进阶:玩转List、Set和Map接口的高级用法!
- 2024-11-20 java8对List集合根据某一字段进行分组
你 发表评论:
欢迎- 最近发表
-
- Java内存溢出紧急处理:10个必知的Linux命令快速定位OOM
- 面试常问的 25+ 个 Linux 命令(linux面试命令大全)
- Java堆外内存溢出紧急处理实战:Linux命令定位与Spring Boot解决
- java开发常用的Linux命令,高频的没你想象的多
- Java 应用 CPU 飙升?8 个 Linux 命令组合拳快速锁定异常线程
- Java 开发者线上问题排查常用的 15 个 Linux 命令
- Java程序员必备的Linux命令:让你的工作效率翻倍
- Java程序员必备的Linux命令全解析
- [超全整理] Java 程序员必备的 100 条 Linux 命令大全
- SAP ABAP资源导航(sap aatp)
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)