Kotlin实战Kotlin中集合的创建
Posted 先知丨先觉
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kotlin实战Kotlin中集合的创建相关的知识,希望对你有一定的参考价值。
kotlin中的集合
Kotlin中的集合分为两派:可变集合与不可变集合
- 列表:List/MutableList;
- 集:Set/MutableSet;
- 映射:Map/MutableMap;
- 集:Collection/MutableCollection;
- 迭代器:Iterable/MutableIterable;
所谓可变就是支持读、写、删,不可变只支持读
我们从下面详细对比中可以发现:
public interface Collection<out E> : Iterable<E>...
public interface MutableCollection<E> : Collection<E>, MutableIterable<E>...
public interface List<out E> : Collection<E> ...
public interface MutableList<E> : List<E>, MutableCollection<E> ...
public interface Set<out E> : Collection<E> ...
public interface MutableSet<E> : Set<E>, MutableCollection<E>...
public interface Map<K, out V>...
public interface MutableMap<K, V> : Map<K, V> ...
如何创建集合
List
val emptyList = emptyList<String>() //创建空的List
val list = listOf<String>("132", "321", "liming") //创建普通的List
val mutList = mutableListOf<Int>(652, 123, 4564) //创建可修改的List
set
val emptySet = emptySet<String>() //创建空的Set
val set = setOf<String>("123", "3212", "sadsa") //创建一个普通的Set
val mutSet = mutableSetOf<Int>(123, 21, 852) //创建一个可变的Set
val hashSet = hashSetOf<Int>(123, 21, 852) //创建一个可变HashSet
val linkedSet = linkedSetOf<Int>(123, 21, 852) //创建一个LinkedHashSet
val sortedSet = sortedSetOf<Int>(123, 21, 852) //创建一个SortedSet
map
val emptyMap = emptyMap<Int, String>() //创建一个空的<Integer,String>的Map
val map = mapOf<Int, String>(1 to "haha", 2 to "lala") //创建一个普通的map
val mutMap = mutableMapOf<Int, String>(1 to "haha", 2 to "lala") //创建一个可变的map
val hashMap = hashMapOf<Int, String>(1 to "haha", 2 to "lala") //创建一个hashMap
val linkedMap = linkedMapOf<Int, String>(1 to "haha", 2 to "lala") //创建一个linkedMap
val sortedMap = sortedMapOf<Int, String>(1 to "haha", 2 to "lala") //创建一个sortedMap
to
并不是一个特殊的结果,而是一个普通的函数
kotlin中的集合与Java中集合的关系
接下来让我们看一下创建的对象类型:
println(list.javaClass) //class java.util.Arrays$ArrayList
println(set.javaClass) //class java.util.LinkedHashSet
println(map.javaClass) //class java.util.LinkedHashMap
如你所见,Kotlin并没有采用自己的集合类,而是采用标准的java集合类,这对java开发者来说是个好消息。
为什么Kotlin没有自己专门的集合类呢?
答: 因为使用标准的java集合类可以更好的和java交互。kotlin与java互调不用考虑集合类的转换。
尽管如此Kotlin并没有止步,而是在此基础上增加了很多方法,如:
获取列表中的最后一个元素,或者得到一个数字列表的最大值:
val strings = listOf<String>("first","second","third","last")
println(strings.last()) //输出 last
val numbers = setOf(1,11,-10,25,3,2)
println(numbers.max()) //输出 25
println(numbers.min()) //输出 -10
更多骚操作请关注后续文章。
以上是关于Kotlin实战Kotlin中集合的创建的主要内容,如果未能解决你的问题,请参考以下文章