首页 > 编程语言 >Java集合框架之Collection集合遍历

Java集合框架之Collection集合遍历

时间:2024-11-15 14:17:51浏览次数:3  
标签:遍历 Java iterator list Collection add 集合

引言

在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集合的遍历方法。如果你有任何问题或需要进一步的讨论,请在评论区留下你的想法。

标签:遍历,Java,iterator,list,Collection,add,集合
From: https://blog.csdn.net/hwh22/article/details/143671666

相关文章

  • 最全JAVA面试八股文,终于整理完了
    1、Java线程具有五中基本状态(1)新建状态(New):当线程对象对创建后,即进入了新建状态,如:Threadt=newMyThread();(2)就绪状态(Runnable):当调用线程对象的start()方法(t.start();),线程即进入就绪状态。处于就绪状态的线程,只是说明此线程已经做好了准备,随时等待CPU调度执行,并不是......
  • C# 集合交、并、差、去重,对象集合交并差
    转自:https://www.cnblogs.com/hao-1234-1234/p/10408602.html关键词:C# List集合交集、并集、差集、去重, 对象集合、对象、引用类型、交并差、List<T>有时候看官网文档是最高效的学习方式! 一、简单集合Intersect交集,Except差集,Union并集int[]oldArray={1,2,3,......
  • java请求频次控制
    1、添加工具类importjava.util.concurrent.atomic.AtomicInteger;/***频次调用控制类*/publicclassRateLimiterUtil{privatefinalAtomicIntegersum;privatefinalintmaxRequests;privatelongperiod=1000;//1秒privatelonglastTime......
  • 2024 年 Java 面试最全攻略:程序员求职跳槽必刷题目 1000+,横扫一切技术盲点!
    写在前面马上又要到收割Offer的季节,你准备好了吗?曾经的我,横扫各个大厂的Offer。还是那句话:进大厂临时抱佛脚是肯定不行的,一定要注重平时的总结和积累,多思考,多积累,多总结,多复盘,将工作经历真正转化为自己的工作经验。面经分享今天给大家分享一个面试大厂的完整面经,小伙......
  • 如何准备Java面试?
    今年招聘高峰期已过,不知道大家都找到工作没有。反正我最近是收到很多粉丝的私信说自己投了简历却杳无音信,在第一关就败下阵来。言归正传出现这一情况要么就是你的简历没有修饰好,要么就是你简历上掌握的技术栈还不足以满足你投的岗位的需求,当然后者是需要平时积累。一般像我们......
  • 基于Java的医院病历管理系统
    医院病历管理系统一:基本介绍开发环境功能模块图系统功能部分数据库表设计二:部分系统页面展示登录页面管理员首页管理员对病人信息管理界面管理员对医生信息管理界面管理员对科室信息管理界面管理员对住院信息管理界面医生管理自己的病人信息界面医生管理病人住院信息界......
  • 基于Java的社区物业管理系统
    社区物业管理系统一:基本介绍开发环境功能模块图系统功能系统功能分析部分数据库表设计系统总体E-R图二:部分系统页面展示登录页面用户车位管理界面用户租住信息管理界面用户收费信息管理界面用户房产信息管理界面管理员用户管理界面管理员收费类型管理界面管理员收费信息......
  • JavaScript介绍与使用
    1.认识jsjs全称(javascript):是网页上面的一个脚本语言运行执行代码逻辑从而达到我们需要的效果2.JavaScript组成核心语法-ECMAScript:规范了JS的基本语法Es是js的语法规范管理者js是Es的实现操作者DOM=>文档对象提供js操作BOM=>浏览器模型对象提供......
  • cursor是什么,怎么用cursor写Java项目
    在Java中,Cursor通常指的是与数据库操作相关的游标,用于在执行SQL查询后遍历结果集。以下是关于Cursor的详细介绍以及在Java项目中使用它的一般步骤:什么是Cursor在数据库操作中,当执行一条查询语句时,数据库会返回一个结果集。Cursor(游标)就是用于在这个结果集中逐行移动......
  • Java 常用加密解密算法
    Java常用加密解密算法 概要  加密算法是一种用数学方法对数据进行变换的技术,目的是保护数据的安全,防止被未经授权的人读取或修改。加密算法可以分为三大类:对称加密算法、非对称加密算法和哈希算法(也叫摘要算法)。  本文来梳理下开发中常用到的数据编码中的Base64以及常......