当前位置: 首页 > news >正文

兰州市城乡和住房建设局网站宜兴建设局官方网站

兰州市城乡和住房建设局网站,宜兴建设局官方网站,外贸推广代理,企业网站要更新文章吗文章目录前言一、遍历方式适用的集合1. 使用增强的 for 循环(适用List 和 Set)2. 使用 Iterator(适用List 和 Set)3. 使用 for 循环(适用List )4. 使用 forEach 方法(Java 8 引入,适用List、Set…

文章目录

  • 前言
  • 一、遍历方式适用的集合
    • 1. 使用增强的 for 循环(适用List 和 Set)
    • 2. 使用 Iterator(适用List 和 Set)
    • 3. 使用 for 循环(适用List )
    • 4. 使用 forEach 方法(Java 8 引入,适用List、Set 和 Map)
    • 5.使用 Stream API (Java 8+)
  • 二、集合适用的遍历方式
    • 1.Map 的其他遍历方式
    • 2.特殊场景建议
  • 总结


前言

Java 作为一门广泛应用的编程语言,在开发中对集合(Collection)的操作尤为频繁。遍历集合是日常编码中最常见的操作之一,而不同的集合类型和使用场景决定了应选择合适的遍历方式。本文将系统地介绍 Java 中常见的集合遍历方式,分析其适用场景、优缺点,并提供代码示例,帮助开发者更高效、安全地处理集合数据。


一、遍历方式适用的集合

1. 使用增强的 for 循环(适用List 和 Set)

import java.util.*;public class TraverseExample {public static void main(String[] args) {List<String> list = Arrays.asList("Apple", "Banana", "Cherry");// 遍历 Listfor (String fruit : list) {System.out.println(fruit);}Set<Integer> set = new HashSet<>(Arrays.asList(1, 2, 3));// 遍历 Setfor (Integer num : set) {System.out.println(num);}}
}

2. 使用 Iterator(适用List 和 Set)

Iterator 是 Java 提供的通用集合迭代器,可以用于遍历所有集合类型(如 List、Set、Queue 等)。特别适用于需要删除元素的场景,因为它支持通过 remove() 方法删除元素。

import java.util.*;public class IteratorExample {public static void main(String[] args) {List<String> list = new ArrayList<>(Arrays.asList("Apple", "Banana", "Cherry"));Iterator<String> iterator = list.iterator();while (iterator.hasNext()) {String fruit = iterator.next();System.out.println(fruit);// 可以安全地删除当前元素if ("Banana".equals(fruit)) {iterator.remove(); // 安全删除}}// 使用 for-each 循环结合 removeIf (Java 8+) 通常是更好的删除方式// list.removeIf(fruit -> "Banana".equals(fruit));}
}

3. 使用 for 循环(适用List )

虽然 for-each 循环更加简洁,但在某些情况下,你可能希望通过传统的 for 循环来遍历集合,特别是在你需要访问集合的索引时。

import java.util.*;public class ForLoopExample {public static void main(String[] args) {List<String> list = Arrays.asList("Apple", "Banana", "Cherry");for (int i = 0; i < list.size(); i++) {String fruit = list.get(i);System.out.println("Index " + i + ": " + fruit);}}
}

4. 使用 forEach 方法(Java 8 引入,适用List、Set 和 Map)

//对于list
List<String> list = Arrays.asList("apple", "banana", "cherry");
list.forEach(fruit -> System.out.println(fruit));
//也可以使用更简洁的方法引用
list.forEach(System.out::println);
//Map 的 forEach 方法
Map<String, Card> cardMap = new HashMap<>();
cardMap.put("card1", new Card("1001"));
cardMap.put("card2", new Card("1002"));cardMap.forEach((key, value) -> {System.out.println("Key: " + key + ", Value: " + value.getID());
});

5.使用 Stream API (Java 8+)

import java.util.*;
import java.util.stream.*;public class StreamExample {public static void main(String[] args) {List<String> list = Arrays.asList("Apple", "Banana", "Cherry");// forEach 方法list.stream().forEach(System.out::println);// 可以结合过滤、映射等操作list.stream().filter(fruit -> fruit.startsWith("A")).map(String::toUpperCase).forEach(System.out::println);}
}

二、集合适用的遍历方式

集合类型推荐遍历方式
List- 增强 for 循环(通用)
- 传统 for 循环(需索引)
- Iterator(需删除)
- forEach()(简洁风格)
Set- 增强 for 循环
- Iterator(需删除)
- forEach()
Map- forEach(BiConsumer)(推荐)
- entrySet() + 增强 for 循环
- keySet() 或 values() 遍历键或值

1.Map 的其他遍历方式

Map<String, Integer> map = new HashMap<>();
map.put("A", 1);
map.put("B", 2);// 方式一:entrySet 遍历键值对
for (Map.Entry<String, Integer> entry : map.entrySet()) {System.out.println("Key: " + entry.getKey() + ", Value: " + entry.getValue());
}// 方式二:keySet 遍历所有键
for (String key : map.keySet()) {System.out.println("Key: " + key);
}// 方式三:values 遍历所有值
for (Integer value : map.values()) {System.out.println("Value: " + value);
}

2.特殊场景建议

需要删除元素:优先使用 Iterator.remove() 或 Collection.removeIf()(Java 8+)。

list.removeIf(fruit -> "Banana".equals(fruit));
  • 高性能要求(如 ArrayList):传统 for 循环(索引)效率高。
  • 并发修改风险:避免在增强 for 循环中直接调用 list.remove()。
  • 函数式编程风格:推荐使用 stream().forEach() 或直接 forEach()。

总结

本文系统梳理了 Java 中常见的集合遍历方式及其适用场景:

增强 for 循环:语法简洁,适用于大多数只读遍历场景,推荐用于 List 和 Set。
Iterator:唯一支持安全删除的遍历方式,是需要在遍历中删除元素时的首选。
传统 for 循环:适用于 List 且需要索引的场景,但不推荐用于 LinkedList。
forEach (Lambda):Java 8+ 推荐方式,代码简洁,支持函数式编程,适用于 List、Set、Map。
Map 遍历:推荐使用 forEach(BiConsumer) 或 entrySet() 增强 for 循环。

http://www.dtcms.com/a/470984.html

相关文章:

  • 娱乐网站设计与实现网络服务对人们生活的影响
  • 自助众筹网站建设分销系统多少钱
  • 网站的联系我们怎么做asp网站好还是php网站好
  • 义乌网站建设九中国外贸出口网站
  • 做企业网站服务商wordpress 手机浏览
  • 徐州市城乡和城乡建设厅网站西安网站建设聚星互联
  • 自己做的网站怎么植入erp做软件工资高还是网站
  • 潍坊建设网站公司衡水建设局网站首页
  • 免费行情软件网站大全网页版陕西建设网站
  • 做h5的网站有哪些网站系统开发毕业设计
  • 阿里云域名注册口令网站优化代码
  • 廊坊电子商务网站建设电子政务门户网站建设汇报
  • 网站建设保密协议书企业名录黄页大全
  • 小型网站建设教程重庆市建设工程信息官方网站
  • 自媒体网站源码模板dede广州最好的网站建设
  • jsp页面如何做网站pv统计有中文网站 怎么做英文网站
  • 国度网络网站建设外国纪录片网站机场建设
  • 做移动网站优化排个人邮箱163免费注册
  • 导柱导套网站建设whois 查询系统
  • c14 lambda表达式
  • 养猪网站建设规划书学校网站建设调查问卷
  • 麦壳云网站建设谭木记网页制作教程
  • 做视频采集网站犯法台州网站制作费用
  • 合肥论坛建站模板门户网站兴化建设局 金
  • MySQL笔记11
  • 网站前置审批在哪里办代理记账包含哪些业务
  • 河北品牌网站建设wordpress幻灯片源码
  • tp做的网站封装成app没有微信怎么进入公众号
  • 凡科网站的ftp手机网站怎么开发
  • 5G NR-NTN协议学习系列:NR-NTN介绍(5)