索引,元素下标,Java ListIterator 中的 nextIndex() 和 next();

2023-11-12

索引,元素下标,Java ListIterator 中的 nextIndex() 和 next();

问题

previousIndex():输出前一个元素的下标(索引)
nextIndex():输出下一个元素的下标(索引)

public static void main(String[] args) {
ArrayList c0 = new ArrayList();
c0.add(“10”);
c0.add(“20”);
c0.add(“30”);
ListIterator it = c0.listIterator()
while (it.hasNext()) {
System.out.println(it.next() + ", " + it.previousIndex() + ", " + it.nextIndex());
}}
运行以上代码
结果:

10,0,1

20,1,2

30,2,3

按照惯有的,数组下标从0开始 ,10的下标是0,那么10的前一个元素索引 不应该是-1吗?
那会不会由于10之前没元素,所以就默认10的前一个元素就是自己呢?
接着看第二行输出
20 的上一个元素的下标是1,额,10在20前面,10的下标是0啊,额?
接着看

以下是个人观点,未验证源码的具体实现机制。

代码

package DataBase;
import java.util.*;
public class TestIterator {

public static void main(String[]args)
{
	ArrayList<String>c0=new ArrayList<>();
	c0.add("0");
	c0.add("1");
	c0.add("2");
	c0.add("3");
	ListIterator<String>it=c0.listIterator();
	    
	System.out.print(c0+"test1\n");
	System.out.print(it.previousIndex()+"\n");
	System.out.print(it.nextIndex()+"\n");
	
	System.out.print(c0+"test2\n");
	it.next();
	System.out.print(it.previousIndex()+"\n");
	System.out.print(it.nextIndex()+"\n");
	
	System.out.print(c0+"test3\n");
	it.add("111");		
	System.out.println(c0);
	System.out.print(it.previous()+"\n");
	System.out.print(it.previousIndex()+"\n");
	System.out.print(it.nextIndex()+"\n");
	
	System.out.print(c0+"test4\n");
	it.next();
	it.previous();
	it.add("222111");	
	System.out.print(c0+"\n");
	System.out.print(it.previousIndex()+"\n");
	System.out.print(it.nextIndex()+"\n");
	
	
	
}

}

输出

[0, 1, 2, 3]test1
-1
0
[0, 1, 2, 3]test2
0
1
[0, 1, 2, 3]test3
[0, 111, 1, 2, 3]
111
0
1
[0, 111, 1, 2, 3]test4
[0, 222111, 111, 1, 2, 3]
1
2

理解

结合代码与输出,ListIterator对象 其实就是一个游标,(游标嘛,比如你打字的那一条竖线)

看一下这张图:

在这里插入图片描述
从代码和输出看,结合猜想,调用next()会使游标右移一位,同理调用previous()游标左移一位;同时这两个函数还会返回游标扫过的元素(即游标向前动,返回没动时的前一个元素,向后动返回没动时后一个元素)

test1中游标位置如图,所以
previousIndex():-1 (next()也会返回一个最大的为n的index (a[n]) 这里一直用 next();当hasnext()==false时 ,nextIndex()返回值为 n ;实际上下标最大为n-1)
nextIndex(): 0

test2同理
test3和test4用图片下的几句话去理解

推广到常见的其他的next()或previous()方法;关于游标,大致如此,具体如何,请自行验证

以上,可能很巧解决了你的问题,如果看不懂或没用,那也正常

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

索引,元素下标,Java ListIterator 中的 nextIndex() 和 next(); 的相关文章

  • linux-awk命令

    目录 1 linux awk 模糊查询 2 linux awk 取列 2 3 linux awk 多个条件and查询 4 linux awk取列 1 5 linux awk取行 6 linux awk 所有pod日志查询 7 linux a
  • Windows server 2016 部署用户漫游

    所需设备 一台Windows server 2016 两台或者以上win7 win10 环境 Windows server 2016 为域控制器 ip地址为192 168 1 1 24 win7 win10加入域控环境 开始部署用户漫游 创
  • 编程每日一题_C程序设计_逆序的三位数

    问题描述 问题来源 C语言程序设计 浙江大学翁老师 改编 有多组数据 每组数据为一个整型正三位数 当输入一组数据时 程序输出按位序逆序的数字 若输入数字结尾为零时 输出不应有前导的零 输入格式 每个测试有多组数据 每组均为一个三位的正整数
  • [4G&5G专题-130]:RF- 软件架构

    作者主页 文火冰糖的硅基工坊 https blog csdn net HiWangWenBing 本文网址 https blog csdn net HiWangWenBing article details 119731935 目录 第1章
  • java中的静态变量的作用域_详解JAVA中static的作用

    1 深度总结 引用一位网友的话 说的非常好 如果别人问你static的作用 如果你说静态修饰 类的属性 和 类的方法 别人认为你是合格的 如果是说 可以构成 静态代码块 那别人认为你还可以 如果你说可以构成 静态内部类 那别人认为你不错 如
  • MIFARE 处理 7字节UID卡片

    免费的东西被人传到CSDN居然收费 需要的请参考参考 https www nxp com docs en application note AN10927 pdf
  • C++小游戏—猜数字

    今天我们用C 语言来制作一个小游戏 猜数字 include
  • 医学图像数据集下载地址

    有些需要富强文明上网 1 ACDC dataset Human Heart Project 2 Brain Tumor Segmentation BraTS 2019 MICCAI s Dataset on Brain Tumor Segm
  • 【Git 教程系列第 27 篇】ssh: connect to host github.com port 22: Connection refused 的解决方案

    这是 Git 教程系列第 27 篇 如果觉得有用的话 欢迎关注专栏 文章目录 一 问题描述 二 解决方案 一 问题描述 自己的一个 git 项目 昨天在公司正常 push 的时候 提示文字信息如下 ssh connect to host g
  • mysql join 循环_MySQL中Join的基本实现原理

    在 MySQL 中 只有一种 Join 算法 就是大名鼎鼎的 Nested Loop Join 他没有其他很多数据库所提供的 Hash Join 也没有 Sort Merge Join 顾名思义 Nested Loop Join 实际上就是
  • 强势出圈!当NFT头像袭来,你pick哪一款?

    NFT有多火爆 看看余文乐的新头像就知道了 余文乐instagram用的头像正是CryptopPunks 加密朋克 系列 不止余文乐 姚明 村上隆 锡安 威廉姆森 阿姆 撒盐哥等等弄潮儿纷纷打卡加密艺术 名人效应对NFT的强势崛起起着强有力
  • QVector、QList、QLinkedList类用法区别

    QVector QList QLinkedList类用法区别 1 QVector 是提供动态数组的一个模板类 QList 是提供列表的一个模板类 QLinkedList 是提供链表的一个模板类 2 QVector
  • 【比赛合集】50+场可报名的数据挖掘奖金赛,任君挑选!

    CompHub 实时聚合多平台的数据类 Kaggle 天池 和OJ类 Leetcode 牛客 比赛 本账号同时会推送最新的比赛消息 欢迎关注 近期CompHub对进行中的比赛增加了 是否可报名 的识别 你可以直接在CompHub中浏览当前可
  • QLineEdit用正则限制文本框的输入内容+正则表达式语法

    参考文章 QLineEdit输入限制 使用正则表达式限制输入浮点数 QRegExp rx 0 1 9 0 9 0 5 d 1 4 t 使用正则表达式限制只能输入数字 QRegExp rx 0 9 QRegExpValidator valid
  • 【插入排序算法】

    1 请设计直接插入排序算法 折半插入排序算法 希尔排序算法 输出每一趟的排序结果 2 源码 include
  • MMU基本概念及工作原理

    1 什么是MMU MMU是 MemoryManagementUnit 的缩写即 内存管理单元 针对各种CPU MMU是个可选的配件 MMU负责的是虚拟地址与物理地址的转换 提供硬件机制的内存访问授权 现代 CPU 的应用中 基本上都选择了使
  • qt creator各个部件显示图片总结

    在工作中 UI设计经常需要显示各式各样的图片 下面就总结了qt如何在一些部件中显示图片的方式 一 QFrame或者QWidget显示图片 在属性stylesheet中填写 loginBoxFrame border image url ico
  • 经验分享:使用谷歌浏览器下载想要的任意网页视频/音乐的方法

    在上网的时候 有些时候看到好看的视频或者需要下载需要的视频 音乐 尤其是那种在网页上面的视频 音乐 想要下载 但是根本没有下载按钮 那怎么下载呢 其实步骤很简单 只需要电脑上安装的有谷歌浏览器 轻松解决这个下载不了网页视频 音乐的问题 通过
  • Android 一个动态获取View宽高的方法

    使用场景可以为已经绘画出的view 想根据比例动态改变宽高 public class ViewUtil public static void getViewWidth final View view final OnViewListener

随机推荐

  • FasterTransformer :transformer类模型的三种结构

    Transformer是一种基于注意力机制的深度神经网络结构 常用于文本生成 机器翻译等NLP任务 目前常用的Transformer类模型架构主要有三种 结构 例子 仅编码器 EncoderOnly bert T5 输入为一整个句子 仅解码
  • 重磅!不止是芯片!半导体全产业链分析

    来源 杨明辉电子 ID gh e6a65dbbbff9 作者 光大电子团队 周期性波动向上 市场规模超4000亿美元 半导体是电子产品的核心 信息产业的基石 半导体行业因具有下游应用广泛 生产技术工序多 产品种类多 技术更新换代快 投资高风
  • maya阿诺德渲染失败_maya云渲染出图异常,Maya云渲染出图错误原因及解决方案

    maya出图异常处理插件配置错误 现象 1 本地文件使用的arnold渲染器 平台上配置的是vray 类似于这种平台配置与本地使用不一致的情况 2 本地文件中用到的插件 在平台上没有配置 3 本地文件中使用的插件版本与在平台上配置的不符合
  • 32位计算机系统安装教程,win732位光盘安装教程

    不少小伙伴都觉得win732位光盘安装的方法非常不错 可是究竟要怎么做 就有很多朋友心中有问号了 其实win732位光盘安装的方法是非常简单的啦 如果大家想要学习的话 下面小编就分享给大家方法吧 现在的安装方法越来越简单了 逐渐从光盘安装到
  • “职场老人给应届生的建议:规划、人际关系和积极心态”

    当前的就业形势越来越严峻 尤其是对于应届生来说更加困难 如何在职场上脱颖而出 成为受人重视的优秀员工 是每个应届生都需要认真思考和努力追求的目标 下面将介绍一些有效的方法和策略 帮助应届生提高自己的职场竞争力 以及对应届生职场发展的关键推动
  • 运用知识图谱技术,赋能多领域应用 ——“未来杯”AI学术联赛总决赛暨颁奖典礼圆满落幕

    由北京大学软件工程国家工程研究中心主办 华为终端有限公司及中软国际教育科技集团全程战略支持 STEER TECH科技平台 北京乐智元素科技有限公司 艾肯文化传媒 北京 有限公司 AI TIME承办 华为NAIE网络人工智能平台作为技术支持战
  • css实现三角形的6种方法

    在一些面试经验中 经常能看到有关css的题目都会有一道如何使用css绘制三角形 而常见的回答通常也只有使用border进行绘制一种方法 而css发展到今天 其实有很多有意思的仅仅使用css就能绘制出来的三角形的方式 本文将展示6中使用css
  • 工程安排(拓扑排序)

    读入文件project txt 8 10 1 2 3 4 5 6 7 8 1 2 6 A 1 5 2 B 2 3 3 C 2 4 5 D 2 5 3 E 3 7 2 F 4 7 3 G 5 6 4 H 6 7 2 I 7 8 2 J inc
  • qt---plt格式处理

    qDebug lt lt do perim lt lt runPerimeterFlag if runPerimeterFlag QPointF point 映射坐标点 添加标志位 QString retval IN SP1 PU 起始坐标
  • 解决MyBatis-Plus分页查询

    在使用Spring Boot或者Spring Cloud开发业务时 经常会需要查数据库 本文以MySQL数据库为例 这时候通常会用到MyBatis 数据量比较多页面展示就会要求分页 接下来正式开始 1 Spring工程创建和添加Maven依
  • HDU - 1272 小希的迷宫之独木桥(并查集的简单应用)

    小希的迷宫 Time Limit 2000 1000 MS Java Others Memory Limit 65536 32768 K Java Others Total Submission s 51951 Accepted Submi
  • 作为一个面试官,我是怎么来面试测试人员的?

    其实之前关于面试也说了好多 知乎上我也开过一个面试的Live 也有幸被选进了知乎2016精选 不过今天我想说的是在实际过程中如果我去面试了 我会怎么进行面试 会问什么问题 会遵照哪些原则 我本身的行事风格就是比较特殊的 希望对广大应聘者和面
  • pragma once

    在C C 中 pragma once是一个非标准但是被广泛支持的方式 pragma once方式产生于 ifndef之后 ifndef方式受C C 语言标准的支持 不受编译器的任何限制 而 pragma once方式有些编译器不支持 较老编
  • 计算机显卡和cpu的关系,cpu和显卡的关系

    大家好 我是时间财富网智能客服时间君 上述问题将由我为大家进行解答 cpu和显卡的关系是都是计算机重要的硬件 CPU就是中央处理器 电脑中的所有命令几乎都要通过处理器来处理 可以将他简单理解为对数据初加工 而显卡主要是对图形进行处理 它能根
  • 机器学习---算法基础(八)SVM

    参考文献 机器学习数学 拉格朗日对偶问题 拉格朗日对偶问题 为什么支持向量机要用拉格朗日对偶算法来解最大化间隔问题 零基础学SVM Support Vector Machine 一 1 SVM概念 支持向量机 英语 support vect
  • SpringBoot实验合集(持续更新中...)

    实验一 使用Spring Boot构建应用程序 一 实验目的 1 掌握使用IntelliJ IDEA创建Spring Boot应用程序的方法 2 了解spring boot starter parent的配置内容 3 掌握如何利用Start
  • 如何用递归解决逆波兰表达式问题?

    描述 逆波兰表达式是一种把运算符前置的算术表达式 例如普通的表达式2 3的逆波兰表示法为 2 3 逆波兰表达式的优点是运算符之间不必有优先级关系 也不必用括号改变运算次序 例如 2 3 4的逆波兰表示法为 2 3 4 本题求解逆波兰表达式的
  • 蓝桥杯2023年真题 python B组

    第十四届蓝桥杯大赛软件赛省赛 Python 大学 B 组 Python 大学 B 组 试题 A 2023 本题总分 5 分 问题描述 请求出在 12345678 至 98765432 中 有多少个数中完全不包含 2023 完全不包含 202
  • 微服务搭建后端项目

    1 搭建分析 2 开始搭建父项目 父项目选SpringBoot项目 如果使用的idea社区版的话 那就创建maven项目导入如下依赖
  • 索引,元素下标,Java ListIterator 中的 nextIndex() 和 next();

    索引 元素下标 Java ListIterator 中的 nextIndex 和 next 问题 previousIndex 输出前一个元素的下标 索引 nextIndex 输出下一个元素的下标 索引 public static void