kotlin基础之列表与集合
为了省事我把什么序列,数组,列表等都简称为列表了,什么hashmap,map,set都简称为集合了。其实无非都是储存数据用的,也没多大区别,就是集合是以键值对的形式,列表就是一组数。fun main(args: Array<String>) {
var list= listOf<Int>(1,2,3,4,5)
var array=IntArray(5){1}
println(list)
array.map { print(it) }
}
以上为列表的两种表现形式,当然其他还有好多,比如arrayListOf,arrayOf,StringArray等等一大堆,我就不说了,都大同小异。这里我用了map遍历方法,这是专门遍历列表跟集合用的。输出结果为:
11111
var set= setOf<String>("小甲鱼","小甲鱼","不二如是")
set.forEach { print(it) }
以上代码为集合的用法,集合不允许有重复的数据。这里我又用了一种forEach的遍历方法,也是跟map用法差不多。输出结果为:
小甲鱼不二如是
var map= mapOf<String,Int>(Pair("a",1), Pair("b",2), Pair("c",3))
map.map { print(it.value) }
这是map集合,里面必须是键值对,结果为:
123
还可以有另一种方式初始化map:
var fruit= mapOf<Int,String>(1 to "apple",2 to "banana",3 to "pear")
fruit.mapValues { print(it.key);print(it.value) }
结果为:
1apple2banana3pear
然后说一下怎么操作这些列表跟集合,代码如下:
var myList=(0..100).toList().asSequence().map { it*it }.filter { it%2==0 }.toList()
print(myList)
这就是链式编程{:5_91:} ,这句话的步骤:我们先创建个列表然后给他转换为序列,这样处理起来效率会高,速度快,在用map处理一下让每个元素都平方,然后再过滤出能被2整除的数,最后再转化成一个列表。输出结果:
还有一种创建序列的方法非常实用,如下:
var c= generateSequence (0){ it+10 }
var list1=c.take(10).toList()
print(list1)
这就是从0开始一直往后迭代+10,这里我们只取前10个数,输出结果为:
不论是列表还是集合,我们刚才写的都是不可更改的,如果要更改,需要如下写法:
var a:MutableList<String>?= arrayListOf("a")
a?.add(0,"b")
a?.add(1,"c")
println(a?.joinToString())
var b:List<Int>?= arrayListOf(1)
b?.toMutableList()
print(b)
变量a是直接写的可以更改的列表类型,b是把它转化成了该类型。输出结果为:
b, c, a
页:
[1]