java集合中三种遍历方法

LIGGGHTS开源离散元仿真:从基础安装到高级应用实战 本文详细介绍了LIGGGHTS开源离散元仿真软件的基础安装、脚本编写及高级应用实战。从颗粒自由落体模拟到工业级复杂系统建模,涵盖CFD-DEM耦合、高性能计算优化等关键技术,帮助用户快速掌握这一强大的颗粒仿真工具。特别适合需要处理颗粒系统仿真的科研人员和工程师。 阅读详情

遍历方法:除了for和foreach循环进行遍历以外,还可以用迭代器进行遍历。

1、Iterator接口

  Iterator也是Java集合框架的成员,主要用于遍历(即迭代访问)Collection集合中的元素,也称为迭代器。

迭代器的使用:

//1.获得list对应的iterator对象
    Iterator<Student> it = students.iterator();

//2.遍历(while循环)
    while(it.hasNext()){
        Student student = it.next();
        if(num.equals(student.getNum())){
	    it.remove();
	    isOK1 = true;
        }
    }


//elements()是Vector的方法
    Enumeration<String> en = vectorList.elements();
    while (en.hasMoreElements()) { 
        String string =  en.nextElement();
	System.out.println("====="+string);
			
    }

//Map中遍历的使用
// Map----->set
    Set<Entry<String, URLitem>> entries = urlobj.entrySet();
//使用set迭代器进行遍历
    Iterator<Entry<String, URLitem>> iterator = entries.iterator();
    while (iterator.hasNext()) {
	Entry<String, URLitem> entry = iterator.next();
	if (entry.getValue().getTitle().equals(title)) {
	    iterator.remove();
	    isOK = true;
	}
    }

优缺点分析: 

优点:迭代器提供了操作元素的方法 可以在遍历中相应地操作元素

缺点:运行复杂,性能稍差,效率相对其他两种遍历方式较低

 

2、使用foreach循环

使用:

    for (String string : vectorList) {
        System.out.println(string);
    }

优缺点分析:

优点:代码简洁,不易出错。

缺点:只能做简单的遍历,不能在遍历过程中操作(删除、替换)数据集合。

3、原始for循环遍历

使用:

//既然list 有索引值,即可遍历。
    for (int i = 0; i < list.size(); i++) {
	System.out.println("----"+list.get(i));
    }

优缺点分析:

优点:效率最高,遍历快,可以根据自定计数器操作元素

缺点:不适用所有集合,适用范围小

 

各种遍历方式适用场合:

 

1、传统的for循环遍历,基于计数器的:

        顺序存储:读取性能比较高。适用于遍历顺序存储集合。

        链式存储:时间复杂度太大,不适用于遍历链式存储的集合。

2、迭代器遍历,Iterator:

        顺序存储:如果不是太在意时间,推荐选择此方式,毕竟代码更加简洁,也防止了Off-By-One的问题。

        链式存储:意义就重大了,平均时间复杂度降为O(n),还是挺诱人的,所以推荐此种遍历方式。

3、foreach循环遍历:

        foreach只是让代码更加简洁了,但是他有一些缺点,就是遍历过程中不能操作数据集合(删除等),所以有些场合不使用。而且它本身就是基于Iterator实现的,但是由于类型转换的问题,所以会比直接使用Iterator慢一点,但是还好,时间复杂度都是一样的。所以怎么选择,参考上面两种方式,做一个折中的选择。


TLSR8258蓝牙Mesh实战:从SDK下载到自定义通信指令全流程(附避坑指南) 本文详细介绍了TLSR8258蓝牙Mesh开发的完整流程,从SDK下载、环境搭建到自定义通信指令的实现。通过实战案例和避坑指南,帮助开发者快速掌握低功耗蓝牙Mesh网络构建技巧,适用于智能家居、工业监控等物联网场景。 阅读详情

相关推荐

华为ENSP虚拟网络与本地物理网卡高效桥接实战指南

本文提供了一份详细的华为ENSP虚拟网络与本地物理网卡桥接实战指南。通过清晰的四步操作,帮助用户打破虚拟实验环境的“孤岛”限制,实现ENSP设备与真实局域网及互联网的互通,从而进行更真实的协议测试、软件升级和混合网络环境搭建。

qsc90123456的博客 537

Java常见的遍历集合场景、方法总结和注意事项

"张三", "李四", "周一", "刘四", "李强", "李白";怎么删除 List 中姓李的人?

白白白鲤鱼的博客 1596

【文本分析学习】Anaconda+pytorch虚拟环境下的pycharm文本分析(含分词、词性标注、词形归一化、停用词、文本情感分析、词频、文本相似度,附数据代码) NLTK

文本分析学习之 Anadconda+pytorch虚拟环境下的pycharm文本分析(含分词、词性标注、词形归一化、停用词、文本情感分析、词频、文本相似度,附数据代码)

littlexmj的博客 2332

Java 三种集合的遍历方式

LIst、Set、Map集合的遍历方式

m0_66918076的博客 5038

S参数反演法

等效介质理论模型— 利用S参数反演法提取超材料结构的等效参数 等效介质理论模型—利用S参数反演法提取超材料结构的等效参数 S参数反演法,即利用等效模型的传输矩阵和S参数求解超材料结构的等效折射率n和等效阻抗Z的过程。本文对等效介质理论模型进行了详细介绍,并提供对应代码。 超材料的传输矩阵 超材料结构的传输矩阵函数为: 其中,d 为等效光学活性材料的厚度,n 为折射率,Z 表示阻抗。 S参数和传输矩阵T 超材料结构的S参数和传输矩阵T满足下列方程: 利用以上两式,可以得到等效折射率n和相对阻抗的表达式

weixin_43962864的博客 1万+

Visual Studio调试时遇到ntdll.dll的PDB文件缺失?别慌,这3个方法帮你搞定(附详细步骤)

本文详细解析了Visual Studio调试时ntdll.dll的PDB文件缺失问题,提供了3种实用解决方案:调整调试设置、配置符号服务器与缓存目录、手动下载管理符号文件。通过分步指导和高级技巧,帮助开发者快速恢复完整的调试功能,特别适用于Windows平台下的C++项目开发。

weixin_42537919的博客 513

Java递归遍历element-ui树节点

递归遍历树节点 element等等UI框架所需的数据结构 <el-tree :data="data" :props="defaultProps" @node-click="handleNodeClick"></el-tree> <script> export default { data() { return { data: [{ label: '一级 1', children: [{

Junyaxx的博客 1512

AI故障预测系统架构设计:5个核心模块+3种主流架构,收藏这篇就够了

深夜11点,某汽车工厂的生产线突然停机——核心机器人的轴承磨损过度导致卡壳。维修人员连夜抢修,直接损失超过50万元,还延误了客户的交货期。传统的“事后维修”或“定期维护”要么代价高昂,要么防不胜防。AI故障预测系统的出现,让“精准维护”成为可能——它能通过传感器数据提前7-30天预警故障,将停机损失降低80%以上。知道要做故障预测,却不知道怎么搭系统——数据怎么采集?特征怎么提取?模型怎么部署?架构怎么选?本文将解决这些问题:我们会拆解AI故障预测系统的5个核心模块,分析3种主流架构。

AIGC应用创新大全的博客 1019

java集合遍历的几种方式总结及比较

https://www.cnblogs.com/huangjinyong/p/10689208.html 集合类的通用遍历方式, 用迭代器迭代: Iterator it = list.iterator(); while(it.hasNext()) {   Object obj = it.next(); } Map遍历方式: 1、通过获取所有的key按照key来遍历 //Set<Integer> set = map.keySet(); //得到所有key的集合 for

yygr的博客 2133

Android 14.0 系统设置显示主菜单添加屏幕旋转菜单实现旋转屏幕功能

在14.0的系统rom定制化开发中,在对系统设置进行定制开发中,有产品需求要求增加 旋转屏幕功能的菜单,就是在点击旋转屏幕菜单后弹窗显示旋转0度,旋转 90度,旋转180度, 旋转270度针对不同分辨率的无重力感应的大屏设备的屏幕旋转功能的实现, 接下来就来分析实现这个功能

安卓兼职framework和app工程师的博客 1309

【华为OD机试】创建二叉树(python, java, c++, js)

请按下列描达构建一颗二叉树,并返回该树的根节点: 1、先创建值为-1的根结点,根节点在第0层; 2、然后根据operations依次添加节点: operations[i] = [height, index] 表示对第 height 层的第index 个节点node, 添加值为i 的子节点: 若node 无「左子节点」。则添加左子节点; 若node 有「左子节点」但无「右子节点」,则添加右子节点: 否则不作任何处理。 height、index 均从0开始计数;index 指所在层的创建顺序。

A_D_I_D_A_S的博客 188

循环遍历 Java 集合中元素的方法总结

简单遍历: for-each循环:语法简洁,适合只读操作。 普通for循环:需索引访问时(如 List)优先选择。 遍历中修改集合: Iterator:安全删除元素(通过 remove())。 ListIterator:双向遍历或需增删元素时使用。 复杂操作(过滤/映射/聚合): Stream API:结合 Lambda 表达式,代码更简洁且功能强大。 多线程环境: 使用 CopyOnWriteArrayList 等线程安全集合,避免 ConcurrentModificationException。

爱的叹息的专栏 1329

软考中级-软件设计师 Python基础

软考中级-软件设计师 Python知识点整理

片言可决讼,半纸能缚龙 3641

Java语言中三种遍历集合的方法

1.使用for循环。其代码表示如下: for(int i = 0;i<list.size();i++){ System.out.println(list.get(i)); } 2.使用foreach循环(JDK5.0以上版本可支持)。其代码如下: for(String string:list){ System.out.println(string); } 其中String...

u012028371的博客 388

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

java中三种常见集合List,Set,Map的遍历方法

List接口和Set接口继承自Collection接口,可以使用Collection接口中常用的方法,如 add(Object e) // 添加指定对象至当前集合 remove(Object o) // 将指定对象从当前集合移除 isEmpty() // 返回布尔值,判断当前集合是否为null iterator() // 返回用于遍历集合内元素的迭代器 size() /...

易碎的_骄傲着 315

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

java集合遍历_Java集合遍历

Java集合遍历教程在Java Iterator方式遍历说明Iterator 是专门的迭代输出接口,将集合里面的元素一个一个的遍历,然后判断,如果有内容就将其内容取出,一直到结尾。Iterator 是一个接口,常用方法有:常用方法方法名描述boolean hasNext();判断是否有下个值E next();取出下个元素的内容void remove()删除当前元素案例package com.hai...

weixin_33648352的博客 397

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

集合遍历

1.Queue遍历 import java.util.Queue;import java.util.concurrent.LinkedBlockingQueue;public class QunueBianli { public static void main(String[] args){ Queue<Integer> q = new LinkedB...

anshu2710的博客 84

java三大集合遍历

1. 场景描述 今天需要用到map集合遍历,一下子忘记咋写了,以前一般用map.get()直接获取值,很少遍历map,刚好总结下java中常用的几个集合-map,set,list遍历。 2. 解决方案 遍历的方法很多,熟练掌握一种就可以了,其他就不一一介绍了,本文用最简单常用的for循环遍历,适用于三大常用集合。 2.1 语法格式 for(对象类型:任意变量名: 集合名称) { } 2....

banguiqian3370的博客 104

Java集合的Stack、Queue、Map的遍历

一、Map的遍历   import java.util.HashMap;  import java.util.Iterator;  import java.util.Map;  /**  * Map的遍历,这个遍历比较特殊,有技巧  *  * @author leizhimin 2009-7-22 15:15:34  */  public class TestM

sumj7011的博客 1437

集合的遍历

set集合 set集合的特点:        1.无序性(存储和读取的顺序可能不一样)        2.不允许重复(重复的会自动去掉).        3.没有索引 遍历的方法:        1.转为字符串打印 &nbsp

Zhan_2020的博客 254

java集合for循环_java中集合的遍历与增强for循环的使用

java集合类的使用可以说是无处不在,总的我们可以将之分为三大块,分别是从Collection接口延伸出的List、Set和以键值对形式作存储的Map类型集合。许多情况需要我们遍历出集合中的元素,并做相应的处理。下面对各种类型的集合的遍历做一些总结,关于增强for循环,需要注意的是,使用增强for循环无法访问数组下标值,对于集合的遍历其内部采用的也是Iterator的相关方法。如果只做简单遍历读取...

weixin_29072299的博客 249

java map的三种遍历方法!

集合的一个很重要的操作---遍历,学习了三种遍历方法,三种方法各有优缺点~~ /* * To change this template, choose Tools | Templates * and open the template in the editor. */ package cn.tsp2c.liubao; import java.util.Collection; imp

顾传龙 324

集合的三种遍历方式以及优缺点分析

作者:Krito_blog来源:https://blog.youkuaiyun.com/Krito_blog/article/details/548088611、Iterator接口...

JAVA葵花宝典 1807

不会吧,那么常用的集合遍历你还不会吗

set集合 set集合的特点:        1.无序性(存储和读取的顺序可能不一样)        2.不允许重复(重复的会自动去掉).        3.没有索引 遍历的方法:        1.转为字符串打印 &nbsp

qq761789003的博客 276

图文结合、清晰易懂——Java中Collection集合的遍历(Iterator、foreach、forEach)

Iterator遍历结合 定义:Iterator接口是Java集合框架中的一员,主要用于迭代访问(即遍历)Collection中的元素, 因此Iterator对象也被称为迭代器 package jiHe; import java.util.*; public class Collection_BianLiJiHe_Iterator { public static void main(String[] args) { //创建ArrayList集合 List st = new Arra.

hey,欢迎浏览我的博客,希望能给你提供帮助。 595
上一篇: 集合
下一篇: final、static修饰符的用法
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值