Kotlin容器

1. 容器 可变/不可变

List<out T> 只读list; MutableList<T>;
Set<out T>/MutableSet<T>
Map<K, out V>/MutableMap<K, V>

//示例
val numbers: MutableList<Int> = mutableListOf(1, 2, 3)
val readOnlyView: List<Int> = numbers
println(numbers)        // prints "[1, 2, 3]"
numbers.add(4)
println(readOnlyView)   // prints "[1, 2, 3, 4]"
readOnlyView.clear()    // -> does not compile

1.1 MutableList

//示例
val numbers: MutableList<Int> = mutableListOf(1, 2, 3)
val readOnlyView: List<Int> = numbers
println(numbers)        // prints "[1, 2, 3]"
numbers.add(4)
println(readOnlyView)   // prints "[1, 2, 3, 4]"
readOnlyView.clear()    // -> does not compile

//属性
size    //尺寸
lastIndex   //最尾元素的索引值

//方法
isNotEmpty()

forEach     //循环
forEachIndexed  //带索引的循环

//取值
component1()    //获取第1(2/3/4/5/)个元素
elementAtOrElse //返回指定E,或index越界时返回入参函数的执行结果
getOrElse   //取值,如果越界则返回传入的默认值
getOrNull   //取值,越界则返回null

contains    //包含
containsAll

//删除
remove
removeAll   //删除有所满足入参函数的元素
drop(n) //list,返回删除前n个元素后的新list
dropLast

slice   //子list
sort()  //排序
sortBy  //指定排序
sorted  //返回新的排序后的list


//去重
distinct()  //list
distinctBy(T->{})   //list,使用入参函数处理

//统计--判断
all     //boolean,每个元素都满足入参函数
any     //任一满足
count   //满足入参函数E的个数
none    //都不满足

//转换成其它类型
toHashSet
toSet
toSortedSet
zip 


//转换
reverse     //反转列表
reversed
asReversed  //list,生成反转列表
associate   //map,将E按入参函数转成pair返回
associateBy //map,将E按入参函数转成K返回
map         //对每一个元素做变换后返回新的list
mapNotNull  
flatMap     //对每一个元素做变换后返回新的list
mapIndexed  //函数入参带index
mapIndexedNotNull   //list,只返回非null值
minus
minusAssign
plus
plusAssign
take    //返回前n个元素
takeLast


//过滤--新增
filter      //list,返回符合入参函数的E
filterNot
filterNotNull   //返回非null元素
filterIsInstance    //list,返回特定类型的元素
groupBy     //map, 分组
intersect   //set,两个容器中都包含的元素

//查找
find    //返回第一个符合入参函数的元素或null
findLast
indexOf //返回第一个的索引值,无则-1
indexOfFirst    //返回第一个符合入参条件的元素索引
indexOfLast 
last    //最后一个入参是否符合
lastIndexOf     //最后一个符合条件元素索引,或-1
lastOrNull  //最有一个元素是否符合,或null
single  //未找到则抛出异常
singleOrNull


//最大,最小
max()   //返回最大值的元素
maxBy   //经过入参函数处理过的最大值
min()
minBy

//求和--递减
fold    //从左往右,在基础值上求和,  xx.fold(9){t,a->a+t}
foldRight   //从右往左求和
reduce  //从左往右递减
reduceIndexed
sumBy   //求和 

1.2 MutableMap

//基本示例
val readWriteMap = hashMapOf("foo" to 1, "bar" to 2)
println(readWriteMap["foo"])  // prints "1"
val snapshot: Map<String, Int> = HashMap(readWriteMap)

//属性
size    //map尺寸
keys    // Returns a mutable Set of all keys 
values  // Returns a mutable Set of all values 

isEmpty()   //判空
isNotEmpty
orEmpty()   //如果为null,则返回新map
forEach((key,value)->{})    //循环

get     //取值
getOrDefault    //有则取值,无则返回传入的默认值
getOrElse       //有则返回值,无则返回传入函数的返回值
getOrPut        //有则返回,无则设值
getValue        //key无对应值时抛出异常

clear() 
put(key: K, value: V)
putAll(from: Map<out K, V>)
remove(key: K)

//统计/判断
all     //boolean, 所有元素匹配
any     //boolean,任一元素匹配
count   //int, 返回符合入参函数的规则个数
none()  //boolean,如果为空
none((k,v)->{}) //boolean,所有元素都不匹配  

contains    //boolean,是否包含
containsValue   //boolean

//过滤--新增
filter  //map,按规则过滤返回新map
filterNot   //map,反向
minus       //map,返回删除key(s)后的新map
minusAssign     //map,删除对应的key(s)
plus        //map,返回添加新pair(s)后的新map
plusAssign  //添加到当前map
toSortedMap

//转换
map         //list, pair用入参函数转换后放入list中返回, 和flatmap区别是入参函数的入参不同
flattmap    //list,按入参函数将pair转成元素
mapKeys     //map, 将key处理后当做新key
mapValues       //map, 将value处理后当做新value
toMutableMap    //转成可变map

//查找
maxBy   //<K,V>, 返回入参函数处理后值最大的那一个pair (null if there are no entries)
MaxWith //<K,V>,入参比较函数
minBY
minWith

转载于:https://www.cnblogs.com/Desneo/p/7213695.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值