Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >列清单的实施
代码语言:javascript
运行
AI代码解释
复制
fun main(args:Array<String>){

    var arraylist= ArrayList<String>()
    arraylist.add("jena")
    arraylist.add("Laya")
    arraylist.add("Hussein")
    arraylist.add("Ahmed")

    println("First name:"+ arraylist.get(0))
    arraylist.set(0," Laya Hussein")

    println(" all element by object")
    for ( item in arraylist){
        println(item)
    }

    println(" all element by index")
    for( index in 0..arraylist.size-1){
       println(arraylist.get(index))
    }
}

我的问题,为什么我们加-1来迭代?这不是在和我说话。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-12-30 03:50:14

数组的索引是基于零的。这意味着在arrayOf("A", "B", "C")

A有索引0,B有索引1,C有索引2。所以最后一个有效的索引是数组的大小-1,即3 - 1 = 2

如果您不想担心这一点,可以使用indices扩展属性,它是所有有效索引的IntRange

代码语言:javascript
运行
AI代码解释
复制
for(index in arraylist.indices) {
   println(arraylist[index])
}

注意用操作符符号[]替换get,这使代码更加简洁。

如果您不关心索引,请避免头痛,并使用forEach

代码语言:javascript
运行
AI代码解释
复制
arraylist.forEach {
   println(it)
}
票数 0
EN

Stack Overflow用户

发布于 2018-12-29 23:29:51

因为如果不添加-1,它将遍历0到列表的大小。这意味着,如果我们有一个大小为5的列表,它将迭代:0, 1, 2, 3, 4, 5

很明显,索引5在这里不是一个有效的索引,所以我们需要确保我们不会迭代太远。

票数 1
EN

Stack Overflow用户

发布于 2018-12-29 23:36:19

Kotlin中的强文本数组具有基于零的索引.要迭代整个数组,我们需要使用从array.size()-1.到的索引。运算符..意味着包含两个范围,因此要迭代整个数组:

代码语言:javascript
运行
AI代码解释
复制
for (index in 0..arraylist.size - 1) {
   // ...
}

我们可以使用函数until来避免使用arraylist.size-1,它包括左范围,但不包括右范围:

代码语言:javascript
运行
AI代码解释
复制
for (index in 0 until arraylist.size) {
   // ...
}

此外,我们还可以使用较短版本的for循环来迭代数组的所有元素:

代码语言:javascript
运行
AI代码解释
复制
for (item in arraylist) {
   // ...
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53975858

复制
相关文章
使用HSB而不是RGB来定义颜色
有多种方法可以在代码中定义颜色。最常用的方法是指定三种基色的值 - 红色、绿色和蓝色 (RGB)。本文通过指定色调、饱和度和亮度 (HSB) 的值来探索替代机制的使用。可以以更直观的方式使用 HSB 属性来创建颜色搭配良好的调色板。
韦弦zhy
2023/01/06
2.8K0
使用HSB而不是RGB来定义颜色
什么是图像分类的Top-5和Top-1错误率
第一次听到top-5错误率,是在CV课上老师讲的,今天又在ImageNet论文上看到了,所以小记一下。
种花家的奋斗兔
2020/11/13
2.8K0
为什么 wait/notify/notifyAll 在 Object 类定义而不是 Thread 类?
作者:Yujiaao 来源:segmentfault.com/a/1190000019962661
Java技术栈
2020/06/16
1.5K0
为什么建议使用你 LocalDateTime ,而不是 Date?
多线程并发如何保证线程安全 - 避免线程之间共享一个SimpleDateFormat对象,每个线程使用时都创建一次SimpleDateFormat对象 => 创建和销毁对象的开销大 - 对使用format和parse方法的地方进行加锁 => 线程阻塞性能差 - 使用ThreadLocal保证每个线程最多只创建一次SimpleDateFormat对象 => 较好的方法
芋道源码
2019/10/23
1.6K0
JDBC为什么要使用PreparedStatement而不是Statement
前言 这篇博客不是我写的,是由刘志军大大翻译的,真心觉得很棒,而且是必学要掌握的东西,所以就转载过来了,我个人的第一篇转载文章。 开始 PreparedStatement是用来执行SQL查询语句的API之一,Java提供了 Statement、PreparedStatement 和 CallableStatement三种方式来执行查询语句,其中 Statement 用于通用查询, PreparedStatement 用于执行参数化查询,而 CallableStatement则是用于存储过程。同时Prepar
roobtyan
2018/06/04
1.5K0
JDBC为什么要使用PreparedStatement而不是Statement
PreparedStatement是java.sql包下面的一个接口,用来执行SQL语句查询,通过调用connection.preparedStatement(sql)方法可以获得PreparedStatment对象。数据库系统会对sql语句进行预编译处理(如果JDBC驱动支持的话),预处理语句将被预先编译好,这条预编译的sql查询语句能在将来的查询中重用,这样一来,它比Statement对象生成的查询速度更快。下面是一个例子:
哲洛不闹
2018/09/19
1.1K0
JDBC为什么要使用PreparedStatement而不是Statement
JDBC为什么要使用PreparedStatement而不是Statement
PreparedStatement是java.sql包下面的一个接口,用来执行SQL语句查询,通过调用connection.preparedStatement(sql)方法可以获得PreparedStatment对象。数据库系统会对sql语句进行预编译处理(如果JDBC驱动支持的话),预处理语句将被预先编译好,这条预编译的sql查询语句能在将来的查询中重用,这样一来,它比Statement对象生成的查询速度更快。下面是一个例子:
哲洛不闹
2018/09/19
9780
JDBC为什么要使用PreparedStatement而不是Statement
为什么建议使用你LocalDateTime,而不是Date?
在项目开发过程中经常遇到时间处理,但是你真的用对了吗,理解阿里巴巴开发手册中禁用static修饰SimpleDateFormat吗?
良月柒
2019/10/28
1.5K0
为什么建议使用你LocalDateTime,而不是Date?
JDBC为什么要使用PreparedStatement而不是Statement
PreparedStatement是用来执行SQL查询语句的API之一,Java提供了 Statement、PreparedStatement 和 CallableStatement三种方式来执行查询语句,其中 Statement 用于通用查询, PreparedStatement 用于执行参数化查询,而 CallableStatement则是用于存储过程。同时PreparedStatement还经常会在Java面试被提及,譬如:Statement与PreparedStatement的区别以及如何避免SQL
java达人
2018/01/31
3.8K0
为什么建议使用你 LocalDateTime ,而不是 Date?
来源:juejin.im/post/5d7787625188252388753eae
JAVA葵花宝典
2019/10/29
1.1K0
为什么建议使用你 LocalDateTime ,而不是 Date?
来源:juejin.im/post/5d7787625188252388753eae
用户1516716
2019/10/24
1.1K0
为什么建议你使用LocalDateTime而不是Date?
calendar是共享变量,并且这个共享变量没有做线程安全控制。当多个线程同时使用相同的SimpleDateFormat对象【如用static修饰的SimpleDateFormat】调用format方法时,多个线程会同时调用calendar.setTime方法,可能一个线程刚设置好time值另外的一个线程马上把设置的time值给修改了导致返回的格式化时间可能是错误的。在多并发情况下使用SimpleDateFormat需格外注意SimpleDateFormat除了format是线程不安全以外,parse方法也是线程不安全的。parse方法实际调用alb.establish(calendar).getTime()方法来解析,alb.establish(calendar)方法里主要完成了
Bug开发工程师
2020/03/12
2.1K0
为什么 url 通常使用域名而不是 IP 地址?
大家好,我是前端西瓜哥。今天来谈谈为什么我们的网址,通常是使用域名,而不是 IP 地址。
前端西瓜哥
2022/12/21
1.8K0
为什么我应该使用指针而不是对象本身
对于现代 C++ (尤其是 C++ 11 之后),大量使用 new 动态分配是不明智的选择。
ClearSeve
2022/02/10
1.5K0
我为什么推荐大家使用 Nginx 而不是 Apache?
最后Nginx和Apache的差异总结成一句话就是:“Nginx适合处理静态请求和反向代理,Apache适合处理动态请求”。但这个差异化只有在请求量达到一定的阈值时表现差异才能表现出来,对于 WordPress 、 Typecho 等等这里动态站点来说某一天流量达到这个阈值的时候,还可以部署LNMPA这样的生产环境来应对和解决。所以流量阈值需求不到的时候,选择Nginx是性价比最好的选择了。
明月登楼的博客
2019/05/15
2.5K0
我为什么推荐大家使用 Nginx 而不是 Apache?
为什么很多 ISP 仍然使用 IS-IS 而不是 OSPF?
来源:网络技术联盟站 链接:https://www.wljslmz.cn/18802.html
网络技术联盟站
2023/03/05
1.3K0
为什么很多 ISP 仍然使用 IS-IS 而不是 OSPF?
谷歌最新翻译系统使错误率减少85%
已参加或正在参加外语课程并使用过谷歌翻译的学生,可能对其语言转换工具的不太完美翻译表现很熟悉。谷歌推出了一个新的系统,利用最先进的技术将翻译错误减少了约55%到85%。 新推出的谷歌神经机器翻译(GNMT)系统提供“端到端的自动翻译方法,有可能克服许多传统的基于短语的翻译系统的弱点”。总体上讲,神经机器翻译(NMT)系统的工作模式是将整个输入句子看做一个单位进行翻译,不像其他的NMT系统会遇到生僻字的麻烦,因此GMNT能够提供更准确和更快速的翻译。该技术得到了Google人工智能系统TensorFlow的支
人工智能快报
2018/03/14
9430
为什么使用OPA而不是原生的Pod安全策略?
https://www.magalix.com/blog/enforce-pod-security-policies-in-kubernetes-using-opa
CNCF
2020/09/04
1.2K0
为什么我在 Linux 上使用 exa 而不是 ls?
我们生活在一个繁忙的世界里,当我们需要查找文件和数据时,使用 ls 命令可以节省时间和精力。但如果不经过大量调整,默认的 ls 输出并不十分舒心。当有一个 exa 替代方案时,为什么要花时间眯着眼睛看黑白文字呢?
用户1880875
2021/09/06
2.1K0
【说站】为什么推荐大家使用 Nginx 而不是 Apache?
无论是 Nginx 还是 Apache 都是 Web 服务器应用,通俗点说我们的网站都是需要 Web 服务器应用来展现给客户的,而服务器是供 Web 服务器应用正常稳定的运行的基础。所以说选择好 Web 服务器应用是会影响到网站性能表现的,甚至会影响到用户的浏览体验。而目前比较主流的 Web 服务器应用也就是 Nginx 和 Apache 了,今天就给大家说明一下为什么我一直都推荐大家使用 Nginx 而不是 Apache?
很酷的站长
2022/11/24
5550
【说站】为什么推荐大家使用 Nginx 而不是 Apache?

相似问题

当选择多个文件时,$@是如何表现的?

23

码头工组成多个码头文件

16

当码头组合运行成功时,码头组合失败。

10

码头码头-组成多个网络

10

码头包和码头组合有什么不同?

35
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档