Java集合框架之Collection集合遍历

引言

在Java编程中,集合(Collection)框架是处理对象集合的核心工具。它提供了一套统一的接口和类来存储和操作对象集合。遍历集合是日常开发中的一项基本任务,本文将深入探讨Java Collection集合的遍历方法,并提供实际的代码示例。

Java Collection框架概览

Java Collection框架主要由以下几个部分组成:

  • List:有序集合,可以包含重复元素。
  • Set:不允许重复元素的集合。
  • Queue:队列,遵循先进先出(FIFO)原则。
  • Map:键值对集合,键不允许重复。

遍历List集合

1. 使用for-each循环遍历

for-each循环(也称为增强型for循环)是Java 5引入的一种简化数组和集合遍历的语法。它简洁且易于阅读,适用于大多数遍历场景。

 List<String> list = new ArrayList<>();list.add("Apple");list.add("Banana");list.add("Cherry");// 使用for-each循环遍历for (String fruit : list) {System.out.println(fruit);}

2. 使用迭代器(Iterator)遍历

Iterator接口提供了一种统一的方法来遍历集合。它不仅可以遍历集合,还可以安全地在遍历过程中删除元素。

      List<String> list = new ArrayList<>();list.add("Apple");list.add("Banana");list.add("Cherry");// 使用Iterator遍历Iterator<String> iterator = list.iterator();while (iterator.hasNext()) {String fruit = iterator.next();System.out.println(fruit);// 可以在这里安全地删除元素// if (someCondition) {//     iterator.remove();// }}

3. 使用for循环遍历(基于索引)

对于List集合,由于它是有序的,并且支持基于索引的访问,因此可以使用传统的for循环进行遍历。

    List<String> list = new ArrayList<>();list.add("Apple");list.add("Banana");list.add("Cherry");// 使用for循环遍历for (int i = 0; i < list.size(); i++) {String fruit = list.get(i);System.out.println(fruit);}
4. 使用Java 8的Stream API遍历

Java 8引入了Stream API,提供了一种声明性的方式来处理集合数据。Stream API不仅支持顺序和并行处理,还可以方便地进行过滤、排序、映射等操作。

    List<String> list = new ArrayList<>();list.add("Apple");list.add("Banana");list.add("Cherry");// 使用Stream API遍历list.stream().forEach(System.out::println);
5. 使用ListIterator遍历

ListIteratorIterator的子接口,它扩展了Iterator的功能,允许双向遍历列表,并可以获取列表中元素的索引,还可以添加、替换元素。

List<String> list = new ArrayList<>();list.add("Apple");list.add("Banana");list.add("Cherry");// 使用ListIterator遍历ListIterator<String> listIterator = list.listIterator();while (listIterator.hasNext()) {String fruit = listIterator.next();System.out.println(fruit);}// 反向遍历while (listIterator.hasPrevious()) {String fruit = listIterator.previous();System.out.println("Reversed: " + fruit);}

遍历Set集合

Set接口同样继承自Collection接口,但它不允许元素重复。遍历Set集合的方法与List类似:

1.使用foreach循环

Set<String> set = new HashSet<>(Arrays.asList("Java", "Python", "C++"));
for (String item : set) {System.out.println(item);
}

2. 使用迭代器(Iterator)

Iterator<String> iterator = set.iterator();
while (iterator.hasNext()) {System.out.println(iterator.next());
}

遍历Map集合

Map接口不同于List和Set,它存储键值对。遍历Map集合可以通过以下几种方式:

1.遍历键集(keySet)

Map<String, String> map = new HashMap<>();
map.put("Java", "Island");
map.put("Python", "Cave");
for (String key : map.keySet()) {System.out.println(key + ": " + map.get(key));
}

2. 遍历值集(values)

for (String value : map.values()) {System.out.println(value);
}

3. 遍历条目集(entrySet)

for (Map.Entry<String, String> entry : map.entrySet()) {System.out.println(entry.getKey() + ": " + entry.getValue());
}

遍历Queue集合

Queue接口是Collection的一个子接口,用于表示队列。遍历Queue集合通常使用迭代器:

Queue<String> queue = new LinkedList<>(Arrays.asList("Java", "Python", "C++"));
Iterator<String> iterator = queue.iterator();
while (iterator.hasNext()) {System.out.println(iterator.next());
}

总结

遍历Java Collection集合是处理集合数据的基本技能。不同的集合类型(List、Set、Map、Queue)提供了不同的遍历方法。掌握这些方法可以帮助你更高效地处理集合数据。在实际开发中,选择合适的遍历方法可以提高代码的可读性和性能。

希望本文能够帮助你更好地理解和使用Java Collection集合的遍历方法。如果你有任何问题或需要进一步的讨论,请在评论区留下你的想法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/471577.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何在CentOS 7上搭建SMB服务

如何在CentOS 7上搭建SMB服务 因项目测试需求&#xff0c;需要自行搭建SMB服务&#xff0c;**SMB&#xff08;Server Message Block&#xff09;**协议是一种常用的文件共享方式&#xff0c;它可以让不同操作系统之间共享文件、打印机等资源。本文将带你一步步搭建一个简单的S…

使用CNN进行验证码识别:深度学习与图像预处理教程

验证码&#xff08;CAPTCHA&#xff09;广泛用于区分人类和自动化程序&#xff08;如机器人&#xff09;&#xff0c;通常由扭曲的字母、数字或符号组成。为了实现验证码的自动识别&#xff0c;深度学习尤其是卷积神经网络&#xff08;CNN&#xff09;非常有效。本文将带你一起…

STM32 51单片机设计半导体制冷片温控设计

目录 前言 一、本设计主要实现哪些很“开门”功能&#xff1f; 二、电路设计原理图 1.电路图采用Altium Designer进行设计&#xff1a; 三、实物设计图 四、程序源代码设计 五、获取资料内容 前言 基于STM32与51单片机的半导体制冷片温控设计 前言 随着现代工业、医疗…

ssm114基于SSM框架的网上拍卖系统的设计与实现+vue(论文+源码)_kaic

摘 要 随着科学技术的飞速发展&#xff0c;各行各业都在努力与现代先进技术接轨&#xff0c;通过科技手段提高自身的优势&#xff0c;商品拍卖当然也不能排除在外&#xff0c;随着商品拍卖管理的不断成熟&#xff0c;它彻底改变了过去传统的经营管理方式&#xff0c;不仅使商品…

算法每日双题精讲——滑动窗口(长度最小的子数组,无重复字符的最长子串)

&#x1f31f;快来参与讨论&#x1f4ac;&#xff0c;点赞&#x1f44d;、收藏⭐、分享&#x1f4e4;&#xff0c;共创活力社区。 &#x1f31f; 别再犹豫了&#xff01;快来订阅我们的算法每日双题精讲专栏&#xff0c;一起踏上算法学习的精彩之旅吧&#xff01;&#x1f4aa;…

批量从Excel某一列中找到符合要求的值并提取其对应数据

本文介绍在Excel中&#xff0c;从某一列数据中找到与已知数据对应的字段&#xff0c;并提取这个字段对应数值的方法。 首先&#xff0c;来明确一下我们的需求。现在已知一个Excel数据&#xff0c;假设其中W列包含了上海市全部社区的名称&#xff0c;而其后的Y列则是这些社区对应…

MaxKB

docker 安装 MaxKB docker run -d --namemaxkb --restartalways -p 8080:8080 -v ~/.maxkb:/var/lib/postgresql/data -v ~/.python-packages:/opt/maxkb/app/sandbox/python-packages cr2.fit2cloud.com/1panel/maxkbdocker psCONTAINER ID IMAGE …

越南很火的slots游戏投放Google谷歌广告策略

越南很火的slots游戏投放Google谷歌广告策略 越南的slot游戏市场正在借助Google广告代投策略推动增长。随着智能手机的普及和互联网的普及&#xff0c;越南的游戏市场迅速增长&#xff0c;吸引了越来越多的投资者和开发者进入该市场。 在这个竞争激烈的市场中&#xff0c;广告…

现代无线通信接收机架构:超外差、零中频与低中频的比较分析

写在前面&#xff1a;本博客是对三种接收机架构的学习笔记&#xff0c;仅供个人学习记录使用。内容主要是上网查阅的资料&#xff0c;以及个人的一些理解。如有错误的地方请指出&#xff01; 文章目录 一、通信机基本架构1、射频发射级的基本组成及完成功能2、射频接收级的基本…

探索MoviePy:Python视频编辑的瑞士军刀

文章目录 &#x1f3ac; 探索MoviePy&#xff1a;Python视频编辑的瑞士军刀第一部分&#xff1a;背景介绍第二部分&#xff1a;MoviePy是什么&#xff1f;第三部分&#xff1a;如何安装MoviePy&#xff1f;第四部分&#xff1a;MoviePy的基本函数使用方法1. 视频剪辑2. 视频拼接…

修改数据库和表的字符集

1、修改数据库字符集 mysql> show CHARACTER SET; 查看所有字符集 mysql> show create database wordpress; 查看数据库wordpress当前字符集mysql> alter database wordpress character set gbk; 将数据库wordpress字符集改为gb…

67页PDF |埃森哲_XX集团信息发展规划IT治理优化方案(限免下载)

一、前言 这份报告是埃森哲_XX集团信息发展规划IT治理优化方案&#xff0c;报告中详细阐述了XX集团如何优化IT治理结构以适应新的要求。报告还分析了集团管控模式的变化&#xff0c;提出了六大业务中心的差异化管控策略&#xff0c;并探讨了这些变化对IT治理模式的影响。报告进…

C# WPF FontDialog字体对话框,ColorDialog颜色对话框 引用

WPF 并没有内置FontDialog和ColorDialog&#xff0c;但可以通过引用 Windows Forms 的控件来实现字体和颜色选择对话框功能。FontDialog 允许用户选择字体、样式、大小等设置。 添加 Windows Forms的引用 项目工程&#xff1a;右键“引用”》“添加引用”》勾选System.Windows…

家政服务小程序,家政行业数字化发展下的优势

今年以来&#xff0c;家政市场需求持续增长&#xff0c;市场规模达到了万亿级别&#xff0c;家政服务行业成为了热门行业之一&#xff01; 家政服务种类目前逐渐呈现了多样化&#xff0c;月嫂、保姆、做饭保洁、收纳、维修等家政种类不断出现&#xff0c;满足了居民日益增长的…

kubernetes简单入门实战

本章将介绍如何在kubernetes集群中部署一个nginx服务&#xff0c;并且能够对其访问 Namespace Namespace是k8s系统中一个非常重要的资源&#xff0c;它的主要作用是用来实现多套环境的资源隔离或者多租户的资源隔离。 默认情况下&#xff0c;k8s集群中的所有的Pod都是可以相…

2分钟在阿里云ECS控制台部署个人应用(图文示例)

作为一名程序员&#xff0c;我有大量的个人代码和应用托管在Github/Gitee这些代码仓库。当我想要部署这些代码到我的阿里云ECS服务器时&#xff0c;往往会很麻烦&#xff0c;主要问题有这些&#xff1a; 需要手动安装和配置git&#xff0c;过程非常繁琐。每次都需要登录到机器…

【Kafka】集成案例:与Spark大数据组件的协同应用

&#x1f407;明明跟你说过&#xff1a;个人主页 &#x1f3c5;个人专栏&#xff1a;《大数据前沿&#xff1a;技术与应用并进》&#x1f3c5; &#x1f516;行路有良友&#xff0c;便是天堂&#x1f516; 目录 一、引言 1、什么是kafka 2、Kafka 的主要特性 3、Kafka 的…

Docker 的安装与使用

Docker 的安装 Docker 是一个开源的商业产品&#xff0c;有两个版本&#xff1a;社区版&#xff08;Community Edition&#xff0c;缩写为 CE&#xff09;和企业版&#xff08;Enterprise Edition&#xff0c;缩写为 EE&#xff09;。 Docker CE 的安装请参考官方文档&#xf…

逐行加载 HTML 内容并实时显示效果:使用 wxPython 的实现

这篇博客中&#xff0c;我们将详细分析如何使用 wxPython 构建一个简单的桌面应用程序&#xff0c;用于逐行加载并显示 HTML 文件的内容&#xff0c;并在加载完成后通过浏览器组件呈现最终页面。通过该应用&#xff0c;我们可以体验到逐行加载 HTML 内容的视觉效果&#xff0c;…

【Linux】HTTP协议和HTTPS加密

文章目录 HTTP1、概念2、认识URL3、协议格式、请求方法和状态码4、HTTP请求和响应报头5、Cookie和Session HTTPS1、对称和非对称加密2、对称非对称加密安全分析3、证书 HTTP 1、概念 我们在应用层定制协议时&#xff0c;不建议直接发送结构体对象&#xff0c;因为在不同的环境…