Java List遍历方法 及其效率对比

ESP32S3 Korvo2V3四通道AEC配置实战:基于AFE的回声消除优化 本文详细介绍了在ESP32S3 Korvo2V3平台上配置四通道AEC(回声消除)的实战经验。通过AFE算法优化和硬件连接调试,实现高质量回声消除,显著提升智能音箱和会议设备的语音交互体验。重点解析了四通道配置、数据格式对齐和参数调优等关键技术要点。 阅读详情
转自: http://xiaooman07.iteye.com/blog/542875 
Java代码    收藏代码
  1. package com.zbalpha.test;  
  2.   
  3. import java.util.ArrayList;  
  4. import java.util.Iterator;  
  5. import java.util.List;  
  6.   
  7. public class ListTest {  
  8.     public static void main(String args[]){  
  9.         List<Long> lists = new ArrayList<Long>();  
  10.   
  11.         for(Long i=0l;i<1000000l;i++){  
  12.             lists.add(i);  
  13.         }    
  14.           
  15.         Long oneOk = oneMethod(lists);  
  16.         Long twoOk = twoMethod(lists);  
  17.         Long threeOk = threeMethod(lists);  
  18.         Long fourOk = fourMethod(lists);  
  19.           
  20.         System.out.println("One:" + oneOk);  
  21.         System.out.println("Two:" + twoOk);  
  22.         System.out.println("Three:" + threeOk);  
  23.         System.out.println("four:" + fourOk);  
  24.           
  25.     }  
  26.       
  27.     public static Long oneMethod(List<Long> lists){  
  28.           
  29.         Long timeStart = System.currentTimeMillis();  
  30.         for(int i=0;i<lists.size();i++)    {  
  31.             System.out.println(lists.get(i));  
  32.         }  
  33.         Long timeStop = System.currentTimeMillis();  
  34.   
  35.         return timeStop -timeStart ;  
  36.     }  
  37.       
  38.     public static Long twoMethod(List<Long> lists){  
  39.           
  40.         Long timeStart = System.currentTimeMillis();  
  41.         for(Long string : lists)    {  
  42.             System.out.println(string);  
  43.         }  
  44.         Long timeStop = System.currentTimeMillis();  
  45.   
  46.         return timeStop -timeStart ;  
  47.     }  
  48.       
  49.     public static Long threeMethod(List<Long> lists){  
  50.           
  51.         Long timeStart = System.currentTimeMillis();  
  52.         Iterator<Long> it = lists.iterator();  
  53.         while (it.hasNext())  
  54.         {  
  55.                 System.out.println(it.next());  
  56.         }  
  57.         Long timeStop = System.currentTimeMillis();  
  58.   
  59.         return timeStop -timeStart ;  
  60.     }      
  61.       
  62.           
  63.       
  64.     public static Long fourMethod(List<Long> lists){  
  65.           
  66.         Long timeStart = System.currentTimeMillis();  
  67.         for(Iterator<Long> i = lists.iterator(); i.hasNext();)    {  
  68.             System.out.println(i.next());  
  69.         }  
  70.         Long timeStop = System.currentTimeMillis();  
  71.   
  72.         return timeStop -timeStart ;  
  73.     }      
  74. }  
结果: One:14109 
         Two:14000 
         Three:15141 
         four:14297 

容器类可以大大提高编程效率和编程能力,在Java2中,所有的容器都由SUN公司的Joshua Bloch进行了重新设计,丰富了容器类库的功能。 

  Java2容器类类库的用途是“保存对象”,它分为两类: 

  Collection----一组独立的元素,通常这些元素都服从某种规则。List必须保持元素特定的顺序,而Set不能有重复元素。 

  Map----一组成对的“键值对”对象,即其元素是成对的对象,最典型的应用就是数据字典,并且还有其它广泛的应用。另外,Map可以返回其所有键组成的Set和其所有值组成的Collection,或其键值对组成的Set,并且还可以像数组一样扩展多维Map,只要让Map中键值对的每个“值”是一个Map即可。 

  1.迭代器 

  迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构。迭代器通常被称为“轻量级”对象,因为创建它的代价小。 

  Java中的Iterator功能比较简单,并且只能单向移动: 

  (1) 使用方法iterator()要求容器返回一个Iterator。第一次调用Iterator的next()方法时,它返回序列的第一个元素。 

  (2) 使用next()获得序列中的下一个元素。 

  (3) 使用hasNext()检查序列中是否还有元素。 

  (4) 使用remove()将迭代器新返回的元素删除。 

  Iterator是Java迭代器最简单的实现,为List设计的ListIterator具有更多的功能,它可以从两个方向遍历List,也可以从List中插入和删除元素。 

  2.List的功能方法 

  List(interface): 次序是List最重要的特点;它确保维护元素特定的顺序。List为Collection添加了许多方法,使得能够向List中间插入与移除元素(只推荐LinkedList使用)。一个List可以生成ListIterator,使用它可以从两个方向遍历List,也可以从List中间插入和删除元素。 

  ArrayList: 由数组实现的List。它允许对元素进行快速随机访问,但是向List中间插入与移除元素的速度很慢。ListIterator只应该用来由后向前遍历ArrayList,而不是用来插入和删除元素,因为这比LinkedList开销要大很多。 

  LinkedList: 对顺序访问进行了优化,向List中间插入与删除得开销不大,随机访问则相对较慢(可用ArrayList代替)。它具有方法addFirst()、addLast()、getFirst()、getLast()、removeFirst()、removeLast(),这些方法(没有在任何接口或基类中定义过)使得LinkedList可以当作堆栈、队列和双向队列使用。 

  3.Set的功能方法 

  Set(interface): 存入Set的每个元素必须是唯一的,因为Set不保存重复元素。加入Set的Object必须定义equals()方法以确保对象的唯一性。Set与Collection有完全一样的接口。Set接口不保证维护元素的次序。 

  HashSet: 为快速查找而设计的Set。存入HashSet的对象必须定义hashCode()。 

  TreeSet: 保持次序的Set,底层为树结构。使用它可以从Set中提取有序的序列。 

  LinkedHashSet: 具有HashSet的查询速度,且内部使用链表维护元素的顺序(插入的次序)。于是在使用迭代器遍历Set时,结果会按元素插入的次序显示。 

  HashSet采用散列函数对元素进行排序,这是专门为快速查询而设计的;TreeSet采用红黑树的数据结构进行排序元素;LinkedHashSet内部使用散列以加快查询速度,同时使用链表维护元素的次序,使得看起来元素是以插入的顺序保存的。需要注意的是,生成自己的类时,Set需要维护元素的存储顺序,因此要实现Comparable接口并定义compareTo()方法。 
Qt自带绘图与GDI+绘图方式比较_gdi+实时绘制qt(2) 2、GDI+是Windows操作系统中的图形设备接口,它提供了一套用于绘制图形的API,包括了图形渲染、图形变换、图形剪切、图形填充等功能,使开发者可以快速地开发出各种类型的图形应用程序。1、Qt是一个跨平台的C++应用程序框架,它提供了一套用于GUI编程的类库,包括了绘图、网络、XML、数据库、多线程等模块,使开发者可以快速地开发出高质量的跨平台应用程序。Qt提供了一套用于绘图的类库,包括了QPainter、QPen、QBrush等类,使开发者可以快速地进行图形绘制。 阅读详情

相关推荐

黑马程序员Pink的javaScript课程APIday4

本文摘要:介绍了JavaScript中日期对象的实例化方法(有参/无参)及三种获取时间戳的方式。讲解了DOM节点操作,包括节点查找(父、子、兄弟节点)、增加/克隆/删除节点的方法。详细说明了移动端touch事件和Swiper插件的使用,包括自动播放和小圆点配置。最后提及学成在线案例中表单验证和取消默认跳转的实现。

JLY19970726的博客 825

Java8中List的排序

1、基本类型的List集合的排序 public void testListSort() { List<Long> idList = new ArrayList<>(); idList.add(23L); idList.add(22L); idList.add(20L); idList.add(21L);

吖脖(博) 7992

Gitlab+Jenkins+Docker+Harbor+K8s+Rancher集群搭建CICD平台

本文以诺依项目为例详细记录了Kubernetes集群的部署过程以及配套DevOps环境的搭建。主要内容包括:1) 配置8个节点的软硬件环境;2) 基础环境准备(网络、防火墙、Docker等);3) 三节点Kubernetes集群部署;4) GitLab代码仓库安装;5) Harbor私有镜像仓库搭建;6) Jenkins持续集成工具配置;7) 基于若依项目的CI/CD实践;8) Rancher集群管理工具部署。

hickman2023的博客 1201

两种Java容器类List和Set分析

两种Java容器类List和Set分析 作者: Java研究组织∣来源:IT世界java文章∣原文地址∣2006-1-8 容器类可以大大提高编程效率和编程能力,在Java2中,所有的容器都由SUN公司的Joshua Bloch进行了重新设计,丰富了容器类库的功能。   Java2容器类类库的用途是“保存对象”,它分为两类:   Collection----一组独立的元素,通常这些元素都服从某种

889

优快云积分获取与管理全攻略

技术社区积分系统是知识共享生态的核心激励机制,通过量化用户贡献实现资源交换。其底层逻辑遵循Web2.0时代的UGC经济模型,用户通过内容创作、社区互动等行为积累虚拟资产。在开发者社区场景中,积分体系能有效促进技术文档、工具源码等资源的流通,优快云作为国内头部平台,其积分规则具有典型参考价值。掌握签到策略、内容互动技巧和资源上传规范等实操方法,可系统性提升积分获取效率。2023年新规强化了连续签到奖励和互动质量检测机制,结合GitHub等开源平台资源互补,能构建更高效的技术资源获取路径。

weixin_34233974的博客 218

通达信抓波段指标(主图)

VAR3:=IF(INBLOCK('科创板'),VART20,IF(INBLOCK('创业板') AND DATE>1200823,VART20,IF(INBLOCK('ST板块'),VART5,VART10)));VAR5:=IF(INBLOCK('科创板'),CT20,IF(INBLOCK('创业板') AND DATE>1200823,CT20,IF(INBLOCK('ST板块'),CT5,CT10)));曾涨停/紫色细K线:青字"炸",涨停未封住。曾跌停/蓝色细K线:红字"撬",跌停被打开。

q125500612的博客 2134

List由大到小排序

private List orderByAsc(List scores){ for (int i = 0; i < scores.size() - 1; i++) { for (int j = 1; j < scores.size() - i; j++) { Long a; if ((sco

phantomes的专栏 7368

YOLO26科研升级:OREPA在线重参数化,让模型精度在训练中持续跃升

在目录下,新建AddModules文件夹,将orepa.py放入其中。

LXY_LOVE36的博客 98

list的排序

list的排序 1. 常用类型的排序 一般常用的类型有Integer,Long等包装类型,String,Date,Number类的继承类等。这些常用的类型中有一个共同点就是,都实现了Comparable接口,并且实现了他的compareTo()方法 一般常用类型的List的排序就很简单,就按照他的排序规则进行就可以了。 List<Integer> ints = new Arra...

程序猿小河 824

成功解决使用jupyter notebook命令打开原先存的.ipynb文件突然消失的问题

成功解决使用jupyter notebook命令打开原先存的.ipynb文件突然消失的问题 目录 解决问题 解决思路 解决方法 T1、修改默认配置 T2、修改后缀参数(此方法是其他网友推荐,博主没有尝试) T3、如果以上还不成功,这个时候很可能是环境配置有问题 解决问题 使用jupyter notebook命令打开原先存的.ipynb文件突然消失的问题 解决思路 使用jupyter notebook命令打开原先存的.ipynb文件突然消失,说明...

头部AI社区如有邀博主AI主题演讲请私信—心比天高,仗剑走天涯,保持热爱,奔赴向梦想!低调,专注,谦虚,自律,反思,成长,还算比较正能量的博主,公益免费传播…内心特别想在AI界做出一些可以推进历史进程影响力的技术(兴趣使然,有点小情怀,也有点使命感呀 5116

【从零开始入门unity游戏开发之——C#篇01】理论开篇,理解什么是编程

理论开篇,理解什么是编程

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 3111

使用Lambda表达式进行排序

【代码】使用Lambda表达式进行排序。

ignb6666的博客 572

【图像去噪】论文复现:超分思想助力荧光显微图像自监督去噪!N2SR的Pytorch源码复现,图文详细教程跑通源码,框架结构原理示意图与代码对应,注释详细,补充三个实用功能代码!

论文题目:Noise2SR: Learning to Denoise from Super-Resolved Single Noisy Fluorescence Image —— Noise2SR:从超分辨率单噪声荧光图像中学习去噪【图像去噪】论文精读:Noise2SR: Learning to Denoise from Super-Resolved Single Noisy Fluorescence Image(N2SR)N2SR框架结构和原理都比较简单,创新点是加入超分,有很多类似的自监督框架;

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 631

java list 遍历效率_Java List遍历方法 及其效率对比

Java List遍历方法 及其效率对比One:14109Two:14000Three:15141four:14297package com.zbalpha.test;import java.util.ArrayList;import java.util.Iterator;import java.util.List;public class ListTest {public static void...

weixin_39548541的博客 402

IDEA的使用指南

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

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

java list 效率_Java List遍历方法及其效率对比

1.package com.zbalpha.test;2.3.import java.util.ArrayList;4.import java.util.Iterator;5.import java.util.List;6.7.public class ListTest {8. public static void main(String args[]){9. List lis...

weixin_42349126的博客 202

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

java list效率高_Java List遍历方法 及其效率对比

One:14109Two:14000Three:15141four:14297package com.zbalpha.test;import java.util.ArrayList;import java.util.Iterator;import java.util.List;public class ListTest {public static void main(String args[])...

weixin_33518100的博客 273

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Java中 List的遍历及三种遍历方法

import java.util.ArrayList;   import java.util.Iterator;   import java.util.List;   public class ListTest {    public static void main(String[] args) {     List list = new ArrayList();

田维常 1901

Java的遍历方式

java集合遍历的几种方式总结及比较 集合类的通用遍历方式, 用迭代器迭代: Iterator it = list.iterator(); while(it.hasNext()) {   Object obj = it.next(); } Map遍历方式: 1、通过获取所有的key按照key来遍历 //Set<Integer> set = map.keyS...

qq_39578411的博客 377

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

学习Java的同学注意了!!!  学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:279558494 我们一起学Java! 集合类的通用遍历方式, 用迭代器迭代: Iterator it = list.iterator(); while(it.hasNext()) { Object obj = it.next(); } Map遍历方式:

whyherry的博客 1277

关于List的遍历性能比较

关于List的遍历、删除某一项性能比较

u010705554的专栏 1283

List 四种遍历方法测试

List 一共有四种for循环stackoverflow,如下,四种循环的简单的性能测试方法见下面代码,简单的得到结论,使用最常用的for循环效率是最高的。

L_WSN的专栏 2338

List接口

文章目录学习目标一、List接口1.添加2.替换3.移除元素4.获取指定元素5.获取指定元素的下标6.截取List二、List遍历三、List特点总结 学习目标 掌握List接口 提示:以下是本篇文章正文内容,案例仅供参考 一、List接口 1.添加 单个元素添加、单个元素指定下标添加 示例代码: li.add("Tom"); li.add("Sad"); li.add("Jerry"); li.add(2,"xxx");

牛奶配茶顶呱呱 329

前端遍历list_Java集合三兄弟List,Set,Map你分的清楚吗?

前言集合作为Java基础知识的核心部分,不论是在面试还是平时工作中都是经常遇见的。当然面对熟悉的List、Set、Map,面试管的提问一般也都不会从简单的问题出发了,今天就来聊下集合中的高级部分,让你对它们的理解更加清楚。一、List、Map、Set三个接口,存取元素时,各有什么特点?(1)Set集合的add有一个boolean类型的返回值,当集合中没有某个元素时,则可以成功加入该 元素...

weixin_33910305的博客 2015
上一篇: 一段值得纪念的SQL语句
下一篇: 1.从数据库显示所有的数据
BenjaminP
博客等级 码龄15年 1粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值