概述
最近遇到一个bug,一个列表展现数据index的问题,挺有意思的,当时让我困惑了很久,现在总结记录一下,估计也会有其他朋友遇到。
类似一个Arraylist()数据集合,Data1 是数据实体Bean,比如存在两个属性,name和address。
var data1 = Data1("张三","北京朝阳区")
var data2 = Data1("李四","北京海淀区")
var data3 = Data1("张三","北京朝阳区")
dataList.add(data1)
dataList.add(data2)
dataList.add(data3)
遍历数据集合时想获取某个item的index,如:
val index = dataList.indexOf(data3)
这时候index 值居然为0,这让我很困惑,我明明取的第三个对象的index,值怎么会为0,后来点进去看了一下源码,找到AbstractList:
override fun indexOf(element: @UnsafeVariance E): Int = indexOfFirst { it == element }
这里能看到,indexOf调用的是indexOfFirst,最终用==比对的两个对象,看到这里突然想到了,kotlin中 两个等于号 比对的是对象的内容,三个等于号比对的才是对象的地址,因为data1和data3内容都一样,所以data3在数据集合中的index 就是0,而不是2, - - 好囧啊
最后
以上就是高兴高山为你收集整理的Kotlin ArrayList indexOf的全部内容,希望文章能够帮你解决Kotlin ArrayList indexOf所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复