kotlin精讲-第5章(16)map集合-中

作者: 739c8d412b4c | 来源:发表于2017-12-06 17:05 被阅读136次

map集合常见方法和属性

集合可以理解为是一个容器,容器操作我们自然想到“增删改查”,但是需要注意可写集合才有“增删改查”,不可写集合只有“查”。

添加元素:put、putAll

添加元素,主要有如下几种方式:

使用put方法直接追加元素,方法签名如下:

public fun put(key: K, value: V): V?

使用putAll方法批量添加集合,无返回值,方法签名如下:

public fun putAll(from: Map<out K, V>): Unit

使用putAll方法批量添加数组,无返回值,方法签名如下:

public fun <K, V> MutableMap<in K, in V>.putAll(pairs: Iterable<Pair<K,V>>): Unit {
    for ((key, value) in pairs) {
        put(key, value)
    }
}

上面的方法,我们编写一个案例,验证下,参考代码:

删除元素:remove

删除元素,主要有如下几种方式:

使用remove方法按照key删除,成功返回key对应的value,否则返回null,方法签名如下:

public fun remove(key: K): V?

使用remove方法按照key-value,成功返回true,否则返回false,方法签名如下:

public fun remove(key: K, value: V): Boolean {
    // See default implementation in JDK sources
    return true
}

我们编写一个案例,验证下上面这些方法,参考代码:

修改元素:set、下标修改

集合的修改,可以通过set方法、下标操作,在Java里面是不可以通过下标操作的,Kotlin中支持下标修改集合。至于下标访问的原理,后面学了操作符重载之后就明白了,在这里,我们可以先把握使用。

当然,还可以通过put方法,去覆盖元素,之前正经经过put方法的使用,这里不再细说。

我们看看set方法的方法签名:

public inline operator fun <K, V> MutableMap<K, V>.set(key: K, value: V): Unit {
    put(key, value)
}

这里估计大家不懂的就是“operator”这个关键字是什么意思。这个到后期讲解操作符重载就知道了。

   我们通过一个案例,来看看集合的修改操作,参考代码:

查询元素:get、getOrDefault、getValue、下标

集合的查询,要通过get、getOrDefault 、getOrNull方法以及下标操作。在Java里面是不可以通过下标操作的,Kotlin中支持下标修改集合。至于下标访问的原理,后面学了操作符重载之后就明白了,在这里,我们可以先把握使用。

get方法,根据key返回value,方法签名如下:

public operator fun get(key: K): V?

同set方法,get方法的申明上也有一个“operator”。

getOrDefault方法,根据key返回value,没有对应的value,返回默认值。方法签名如下:

public fun getOrDefault(key: K, defaultValue: @UnsafeVariance V): V {
    // See default implementation in JDK sources
    return null as V
}

getValue方法,根据key返回value,没有对应的value,抛异常。方法签名如下:

public fun <K, V> Map<K, V>.getValue(key: K): V = getOrImplicitDefault(key)

我们通过一个案例,来看看集合的查询操作,参考代码:

是否包含元素:contains、containsKey、containsValue

判断元素是否包含,map集合提供了contains、containsKey、containsValue方法。

contains方法,是否包含key,接收元素key,返回Boolean类型,方法定义如下:

public inline operator fun <@kotlin.internal.OnlyInputTypes K, V> Map<out K, V>.contains(key: K) : Boolean = containsKey(key)

containsKey方法,,是否包含key,接收元素key,返回Boolean类型,方法定义如下:

public fun containsKey(key: K): Boolean

containsValue方法,是否包含key,接收元素value,返回Boolean类型,方法定义如下:

public fun containsValue(value: @UnsafeVariance V): Boolean

我们通过一个案例,来看看集合的原始是否包含操作,参考代码:

获取数组长度:size属性、count方法

同数组,获取长度可以通过size属性和count方法去获取,参考代码:

相关文章

  • kotlin精讲-第5章(16)map集合-中

    map集合常见方法和属性 集合可以理解为是一个容器,容器操作我们自然想到“增删改查”,但是需要注意可写集合才有“增...

  • kotlin精讲-第5章(17)map集合-下

    map集合变化操作 可以通过plus、minus对集合进行变换,产生一个新的集合。 plus ()方法,往map集...

  • kotlin精讲-第5章(8)集合(list set map)

    集合定义和分类 集合定义 从这节开始,我们将学习Kotlin中的集合。如果将区间比喻为MP3,那么集合就是现在的智...

  • 四、Kotlin集合

    "集合:List、Set、Map" 集合:List、Set、Map 与大多数语言不同,Kotlin 区分可变集合和...

  • Kotlin——集合

    Kotlin——集合 Kotlin的集合类由两个接口派生:Collection和Map。Collection和Ma...

  • Kotlin高级特性(二)

    一、集合操作符 Kotlin中可以通过集合操作符直接对集合进行操作,从而得到想要的结果。 map:对集合中的数据做...

  • kotlin精讲-第5章(13)set集合-中

    set集合常见方法和属性 set集合可以理解为是一个容器,容器操作我们自然想到“增删改查”,可写集合才有“增删改查...

  • Kotlin集合——Set集合

    Kotlin的集合类由两个接口派生:Collection和Map。 Kotlin的集合分为两大类:可变集合和不可变...

  • [Kotlin Tutorials 7] Kotlin集合

    Kotlin集合 集合创建 Kotlin标准库提供了set, list和map这三种基本集合类型的实现, 每种类型...

  • Kotlin集合——Map集合

    Kotlin的Map集合用于保存key-value对,其也被分为可变的和不可变的。 一、声明和创建Map集合 Ko...

网友评论

    本文标题:kotlin精讲-第5章(16)map集合-中

    本文链接:https://www.haomeiwen.com/subject/usdlixtx.html