我是靠谱客的博主 淡然钻石,最近开发中收集的这篇文章主要介绍Android Groovy(五) 集合1. 列表集合List2. 字典集合Map,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

首先申明下,本文为笔者学习《Groovy 程序设计》的笔记,并加入笔者自己的理解和归纳总结。

1. 列表集合List

List初始化,直接调用[]来定义。

lst = [1, 2, 3, 4, 5, 6]
println lst.getClass().name // java.util.ArrayList

[]操作符获取List中的元素,index可以是正数,也可以是负数。

println lst[1] // 2
println lst[-1] // 6

..表示连续

println lst[1..4] // [2, 3, 4, 5]
println lst[-1..-4] // [6, 5, 4, 3]

each()方法实现迭代

total = 0
lst.each { total += it }
println total // 21

collect()方法返回一个集合

println lst.collect { it * it } // [1, 4, 9, 16, 25, 36]

查找方法find()findAll(),结果是符合条件的值。而findIndexOf()返回index

println lst.find { it == 3 } // 3
println lst.findAll { it > 3 } // [4, 5, 6]
println lst.findIndexOf { it == 3 } // 2

sum()方法求和

println lst.sum() // 21

join()方法连接元素

println lst.join(',') // 1,2,3,4,5,6

<<表示添加元素。

lst = []
lst << "Hello"
lst << "World!"
println lst // [Hello, World!]

-表示删除元素。

lst = ["Hello", "World!", "Welcome", "to", "BeiJing"]
println lst - ["Hello", "to"] // [World!, Welcome, BeiJing]

flatten()方法

lst = []
lst << ["Hello", "World!"]
lst << "Welcome"
lst << "to"
lst << "BeiJing"

println lst // [[Hello, World!], Welcome, to, BeiJing]
println lst.flatten() // [Hello, World!, Welcome, to, BeiJing]

List每个元素上操作

lst = ["Hello", "World!", "Welcome", "to", "BeiJing"]
println lst*.size() // [5, 6, 7, 2, 7]

2. 字典集合Map

Map初始化

person = ["Mike": "ShangHai", "Lily" : "BeiJing", "Jack" : "ShangHai"]
println person.getClass().name // java.util.LinkedHashMap

[].操作符获取Map中的元素。

println person["Mike"] // ShangHai
println person.Lily // BeiJing
println person['Lili'] // null

each()方法实现迭代

person.each { entry ->
    println "$entry.key live in $entry.value"
}

person.each { name, city ->
    println "$name live in $city"
}

返回

Mike live in ShangHai
Lily live in BeiJing
Jack live in ShangHai

collect()方法返回一个集合

println person.collect { name, city -> name } // [Mike, Lily, Jack]

查找方法find()findAll()

selected = person.find { name, city ->
    city == "ShangHai"
}
println selected // Mike=ShangHai

selected = person.findAll { name, city ->
    city == "ShangHai"
}
println selected // [Mike:ShangHai, Jack:ShangHai]

groupBy()分组

groups = person.groupBy { it.value }
println groups // [ShangHai:[Mike:ShangHai, Jack:ShangHai], BeiJing:[Lily:BeiJing]]
groups.each{ city, persons ->
    println city
    for (p in persons) {
        println "$p.key live in $p.value"
    }
}

返回

[ShangHai:[Mike:ShangHai, Jack:ShangHai], BeiJing:[Lily:BeiJing]]
ShangHai
Mike live in ShangHai
Jack live in ShangHai
BeiJing
Lily live in BeiJing

最后

以上就是淡然钻石为你收集整理的Android Groovy(五) 集合1. 列表集合List2. 字典集合Map的全部内容,希望文章能够帮你解决Android Groovy(五) 集合1. 列表集合List2. 字典集合Map所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(203)

评论列表共有 0 条评论

立即
投稿
返回
顶部