首页 > 其他分享 >集合遍历

集合遍历

时间:2024-08-06 10:27:24浏览次数:10  
标签:遍历 list System println fruit 集合

集合遍历


集合遍历是指访问集合中的每个元素,并对它们进行迭代处理的过程。Java集合框架提供了几种遍历集合的方法。以下是一些常见的遍历技术:

使用 for 循环

对于数组或 List,可以使用传统的 for 循环进行遍历:

List<String> list = Arrays.asList("Apple", "Banana", "Cherry");
for (int i = 0; i < list.size(); i++) {
    System.out.println(list.get(i));
}

使用增强的 for 循环(For-Each Loop)

Java 5 引入了增强的 for 循环,它使得遍历集合更加简洁:

for (String fruit : list) {
    System.out.println(fruit);
}

使用 Iterator

Iterator 是一个允许调用者访问一个集合的元素的方法,而不必关心集合的底层表示。每个 Collection 接口的实现都提供了一个 iterator() 方法:

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

使用 Stream

Java 8 引入了 Stream API,它支持函数式编程,可以进行更复杂的集合操作,包括遍历:

list.stream().forEach(System.out::println);

使用 Spliterator

Java 8 还引入了 Spliterator,它用于遍历 Collection,支持并行操作:

Spliterator<String> spliterator = list.spliterator();
while (spliterator.tryAdvance(fruit -> System.out.println(fruit))) {
    // 元素处理
}

使用 forEach 方法

Collection 接口的 forEach 方法允许你传入一个 Consumer 函数式接口,对每个元素执行操作:

list.forEach(fruit -> System.out.println(fruit));

使用 Streampeek 方法

如果你需要在流处理过程中进行遍历,可以使用 peek 方法:

list.stream()
    .peek(System.out::println) // 遍历并打印每个元素
    .filter(fruit -> fruit.startsWith("B")) // 过滤操作
    .collect(Collectors.toList()); // 收集结果

注意事项

  • 遍历修改:在遍历时修改集合(例如添加或删除元素)可能会导致 ConcurrentModificationException。如果需要在遍历过程中修改集合,考虑使用 Iteratorremove 方法或使用 Collectors 收集结果到新集合。
  • 性能:对于大型集合,考虑遍历的性能。例如,使用 Stream API 可能比传统的 for 循环更高效,特别是当涉及到并行处理时。

标签:遍历,list,System,println,fruit,集合
From: https://www.cnblogs.com/dengyingyuan/p/18344654

相关文章

  • 集合
    我们来简单解读下上面这个框架图:所有集合类都位于java.util包下Iterator是遍历集合的工具,我们经常通过Iterator迭代器来遍历集合。我们说Collection依赖于Iterator,是因为Collection的实现类都要实现iterator()函数,返回一个Iterator对象。ListIterator主要作用就是遍历List。Ja......
  • 【日常开发】一个list集合 根据a字段 b字段进行分组 并计算c字段的和 并封装这种格式:
    ......
  • leetcode200. 岛屿数量C++题解,精美图例和流程图,一题带你弄懂图的dfs遍历算法
    leetcode200.岛屿数量给你一个由‘1’(陆地)和‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。示例1:输入:grid=[[“1”,“1”,“1”,......
  • 深度优先遍历图--DFS
    一.前言    图的遍历定义:从已经给出的连通图中某一顶点出发,沿着一些边访遍图中所有的顶点,使每个顶点仅被访问一次,就叫做图的遍历,它是图的基本运算。    图的遍历实质:找每个顶点的邻接点的过程。在找顶点邻接点的过程中,可能会出现重复访问某个邻接点的情况,......
  • 47 集合操作与运算
    1增加与删除集合元素集合对象的add()方法可以增加新元素,如果该元素已存在则忽略该操作,不会抛出异常;update()方法合并另外一个集合中的元素到当前集合中,并自动去除重复元素。s={1,2,3}print(s)s.add(3)#增加元素,重复元素自动忽略s.update({3,4,5})#更新......
  • 列表的增删改查遍历
    两种遍历方法:for和foreach遍历点击查看代码usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Windows.Documents;namespacetest_12_列表{internalclassProgram{......
  • 先(后)序遍历确定唯一二叉树
    在二叉树的先序遍历或后序遍历序列中,如果我们记录了空节点的位置(通常用特殊符号如'#'表示),就足以唯一确定一棵二叉树的结构。这种方法的关键在于,记录空节点的位置能够帮助我们在遍历序列中准确地还原出树中节点的结构信息。因此,只要给出了先序遍历或后序遍历序列以及空节点的位置,......
  • 数据结构--------二叉树的定义及遍历操作的实现
    /*二叉树的链式存储以及基本操作*/#include<stdio.h>#include<stdlib.h>//树的节点typedefstructBTNode{intdata;structBTNode*lchild;structBTNode*rchild;}BTNode,*BTTree;/......
  • 【MFC】树控件递归遍历
    //本树只有一个父节点,最深子节点为2级,拥有复选框//遍历树控件(只有一个父节点,命名为“所有模板”)voidCCheckOverLapDlg::TraverseTree(CTreeCtrl*pTreeCtrl){ CStringstrParent=_T("所有模板"); //主函数入口 TraverseTreeBranch(pTreeCtrl,pTreeCtrl->GetRootItem(),......
  • SmolLM: 一个超快速、超高性能的小模型集合
    简介本文将介绍SmolLM。它集合了一系列最尖端的135M、360M、1.7B参数量的小模型,这些模型均在一个全新的高质量数据集上训练。本文将介绍数据整理、模型评测、使用方法等相关过程。引言近期,人们对能在本地设备上运行的小语言模型的兴趣日渐增长。这一趋势不仅激发了相关业者......