Kotlin笔记 五(二)集合

第五章 集合

Kotlin中集合分为可变集合(可以增删改查)和只读集合(只能读取元素,去掉了增、删、改的功能);(注意:这儿只读集合并不等同于不变集合,是可以改变的)如:

		val wirteList:MutableList<Int>=mutableListof(1,2,3);
		vatl readList:List<Int>=writeList
		writeList[0]=4

MutableList是List的子类,所以List是MutableList的父类,这儿readList与writeList指向的同一个对象,当writeList改变了第一个元素,readList指向的元素也就改变了,所以说:只读集合是可以改变的

Kotlin中集合仍然由Collection和Map这两个根集合接口派生子接口的
Kotlin在JVM中并未真正去实现HashSet、LinkedHashSet、linkedList、ArrayList等这些类,只是为Java中的这些类指定了一个类型别名,而直接借用了这些集合类,为他们扩展了更多方法;

1、set集合

Kotlin不推荐使用构造器创建集合对象,而是推荐使用Kotlin提供的工具函数来创建集合;

创建不可变Set集合:

setOf(元素1,元素2…):实际创建的LinkedSet集合对象

创建可变Set集合:

hashSetOf(…)

linkedSetOf(…)

mutableSetOf(…):创建可变的MutableSet集合

sortSetOf():创建可变的TreeSet集合。

1.1、使用set集合

提供的许多方法和Array功能相似如:

1.2、遍历Set

for(i in set){

}

由于Set集合继承了Iteratable,因此可以使用该接口定义的forEach()方法来遍历集合

	set.forEach(){
		println(it)
	}

前面我们说setOf()返回的LinkedSet(有序的),因此可以通过Set集合提供的indices

//遍历Set集合
    fun iterateSet(){
        val set = setOf<String>("java","kotlin")
        for (i in set.indices){
            println(set.elementAt(i))
        }
        
    }

不可变的Set的iterator()方法返回的是Iterator对象,该对象有hasNext()和next()两个方法;而MutableSet的iterator()方法返回的MutableIterator,除了这两个方法,还提供了一个remove方法,该方法用于在遍历是删除对象;

注意:MutableIterator才相当于Java中的Iterator;

结论:不可变Set集合,遍历是不能删除元素;可变Set集合遍历时才可以删除集合元素;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值