首页 > 其他分享 >10.11每日总结

10.11每日总结

时间:2023-10-11 12:02:24浏览次数:47  
标签:总结 元素 int 每日 elementData next cursor 10.11 指针

关于java集合迭代器中的it.hashNext()和it.next()方法
今天突然想了一下找个问题,网上大多数说是直接取下一个元素,很迷惑,那么迭代器中it.next()方法到底是取当前元素并且指针下移还是直接取得下一个元素呢?
下面就找个问题追了一下源码

//jdk1.8
private class Itr implements Iterator<E> {
int cursor; // index of next element to return
int lastRet = -1; // index of last element returned; -1 if no such
int expectedModCount = modCount;

public boolean hasNext() {
return cursor != size;
}

public E next() {
checkForComodification();
int i = cursor;
if (i >= size)
throw new NoSuchElementException();
Object[] elementData = ArrayList.this.elementData;
if (i >= elementData.length)
throw new ConcurrentModificationException();
cursor = i + 1;//指针先下移
return (E) elementData[lastRet = i];//lastRet初始值为-1,所以此处来看是取得当前元素
}

结论:在使用迭代器的过程中,it.hasNext()方法不涉及指针的移动,只是判断当前指针是否超出下标,也就是判断是否还有下一元素。而it.next()方法从源码来看则是先将指针下移并且取得当前元素。整个过程中只有next()方法涉及指针的下移。

标签:总结,元素,int,每日,elementData,next,cursor,10.11,指针
From: https://www.cnblogs.com/clh628/p/17756749.html

相关文章

  • 10.11日记
    工厂方法模式描述:在子类中实现父类的抽象方法不需要修改工厂类,只需要添加就行。符合开闭原则//商品接口的实现类interfaceProduct2{   functionshow():void;}classConcreateProductAimplementsProduct2{   publicfunctionshow():void   {       ......
  • IT技术栈:Golang面试攻略详细总结,有的坑,原来真的可以躲过去
    IT技术栈:Golang面试攻略详细总结,有的坑,原来真的可以躲过去首发2023-10-1017:38·大侠技术栈make与new的异同  相同点:都是用来给变量分配内存的不同点:new一般给值类型的变量,例如:string、int、arr分配内存,make给slice、channel、map等引用类型的变量分配内存返回值......
  • 每日总结20231010
    代码时间(包括上课)7h代码量(行):100行博客数量(篇):1篇相关事项:1、今天是周二,今天上午上的是大数据、习概,大数据讲的是MapReduce的原理,习概讲的是国家安全地展开。2、今天下午上机课,自己通过搜索成功的建立了c#的第一个程序。3、今天还打算看看软件设计师相关的题目,我要过,我要通过,......
  • 每日总结
    今日收获写了好久的社会实践报告,手废了的感觉~~背单词~~学习软考(但是今天进度不明显,其他的占用了不少的时间);中午下课之后就将数据库作业写完啦~~(出来的那一刻特别开心!!!)明天预计学习软考内容~~背单词~~......
  • 10.10总结
    今天的大部分时间依然放在了备战软考上面学习时间4小时今天主要学习了下午第一道题数据流图的解法。练了四道题。其次学习了上午题的知识产权、数据库和面向对象设计的部分,刷了一百道选择题左右。......
  • 2023.10.10——每日总结
    学习所花时间(包括上课):9h代码量(行):0行博客量(篇):1篇今天,上午学习,下午学习;我了解到的知识点:1.mapreduce;明日计划:学习......
  • 2023暑假集训总结
    Part120230807~20230816这段时间主要是lyn学长给我们讲课。和上次寒假集训不同,这次lyn学长准备的东西难度非常之大,大部分都是NOI级的数据结构和算法,比如一些高难数论(exCRT、各种定理等等)、一些奇妙的DP优化、一些奇妙的数学期望、网络流、进阶的线段树,很难,感觉自己只......
  • gcc编译过程总结
    第一步:对源文件进行预处理,需要使用的gcc参数为-E#1.预处理,-o指定生成的文件名$gcc-Etest.c-otest.i第二步:编译预处理之后的文件,需要使用的gcc参数为-S#2.编译,得到汇编文件$gcc-Stest.i-otest.s第三步:对得到的汇编文件进行汇编,需要使用的gcc......
  • 总结selenium 中 js 更改隐藏属性
    第一种多个元素被隐藏时通过js修改对比照片这个是没隐藏的 对比照片 这个是隐藏的 driver=webdriver.Chrome()#urlurl=r"http://127.0.0.1:5000/"driver.get(url)print("已打开网页")#执行js脚本,将元素的display属性设置为block,......
  • Thingsboard网关总结
    1概述Thingsboard网关是一个开放源代码的解决方案可让您使用Thingsboard集成连接到旧系统和第三方系统的设备。运行需要python3.7+的环境。2安装一般使用源码进行安装,其步骤如下:1、从代码仓库克隆代码, 2、进入代码目录,使用setup.py脚本安装python模块,python3setup.pyinsta......