repeat(n, x) |
返回一个 List,将元素 x 重复 n 次组合而成。 |
repeatedly(n, f) |
返回一个 List,将函数 f 重复调用 n 次的结果组合而成。 |
seq.array(clazz, e1, e2,e3, …) |
创建一个指定 clazz 类型的数组,并添加参数 e1,e2,e3 …到这个数组并返回。 clazz 可以是类似 java.lang.String 的类型,也可以是原生类型,如 int/long/float 等 |
seq.array_of(clazz, size1, size2, …sizes) |
创建 clazz 类型的一维或多维数组,维度大小为 sizes 指定。clazz 同 seq.array 定义。 |
seq.list(p1, p2, p3, …) |
创建一个 java.util.ArrayList 实例,添加参数到这个集合并返回。 |
seq.set(p1, p2, p3, …) |
创建一个 java.util.HashSet 实例,添加参数到这个集合并返回。 |
seq.map(k1, v1, k2, v2, …) |
创建一个 java.util.HashMap 实例,参数要求偶数个,类似 k1,v1 这样成对作为 key-value 存入 map,返回集合。 |
seq.entry(key, value) |
创建 Map.Entry 对象,用于 map, filter 等函数 |
seq.keys(m) |
返回 map 的 key 集合 |
seq.vals(m) |
返回 map 的 value 集合 |
into(to_seq, from_seq) |
用于 sequence 转换,将 from sequence 的元素使用 seq.add 函数逐一添加到了 to sequence 并返回最终的 to_seq |
seq.contains_key(map, key) |
当 map 中存在 key 的时候(可能为 null),返回 true。对于数组和链表,key 可以是 index,当 index 在有效范围[0..len-1],返回 true,否则返回 false |
seq.add(coll, element) seq.add(m, key, value) |
往集合 coll 添加元素,集合可以是 java.util.Collection,也可以是 java.util.Map(三参数版本) |
seq.put(coll, key, value) |
类似 List.set(i, v)。用于设置 seq 在 key 位置的值为 value,seq 可以是 map ,数组或者 List。 map 就是键值对, 数组或者 List 的时候, key 为索引位置整数,value 即为想要放入该索引位置的值。 |
seq.remove(coll, element) |
从集合或者 hash map 中删除元素或者 key |
seq.get(coll, element) |
从 list、数组或者 hash-map 获取对应的元素值,对于 list 和数组, element 为元素的索引位置(从 0 开始),对于 hash map 来说, element 为 key。 |
map(seq,fun) |
将函数 fun 作用到集合 seq 每个元素上, 返回新元素组成的集合 |
filter(seq,predicate) |
将谓词 predicate 作用在集合的每个元素 上,返回谓词为 true 的元素组成的集合 |
count(seq) |
返回集合大小,seq 可以是数组,字符串,range ,List 等等 |
is_empty(seq) |
等价于 count(seq) == 0,当集合为空或者 nil,返回 true |
distinct(seq) |
返回 seq 去重后的结果集合。 |
is_distinct(seq) |
当 seq 没有重复元素的时候,返回 true,否则返回 false |
concat(seq1, seq2) |
将 seq1 和 seq2 “连接”,返回连接后的结果,复杂度 O(m+n), m 和 n 分别是两个集合的长度。 |
include(seq,element) |
判断 element 是否在集合 seq 中,返回 boolean 值,对于 java.uitl.Set 是 O(1) 时间复杂度,其他为 O(n) |
sort(seq, [comparator]) |
排序集合,仅对数组和 List 有效,返回排序后的新集合,comparator 是一个 java.util.Comparator 实例,可选排序方式。 |
reverse(seq) |
将集合元素逆序,返回新的集合。 |
reduce(seq,fun,init) |
fun 接收两个参数,第一个是集合元素, 第二个是累积的函数,本函数用于将 fun 作用在结果值(初始值为 init 指定)和集合的每个元素上面,返回新的结果值;函数返回最终的结果值 |
take_while(seq, pred) |
遍历集合 seq,对每个元素调用 pred(x),返回 true则加入结果集合,最终返回收集的结果集合。也就是说从集合 seq 收集 pred 调用为 true 的元素。 |
drop_while(seq, pred) |
与 take_while 相反,丢弃任何 pred(x) 为 true 的元素并返回最终的结果集合。 |
group_by(seq, keyfn) |
对集合 seq 的元素按照 keyfn(x) 的调用结果做分类,返回最终映射 map。具体使用见文档。 |
zipmap(keys, values) |
返回一个 HashMap,其中按照 keys 和 values 两个集合的顺序映射键值对。具体使用见文档。 |
seq.every(seq, fun) |
fun 接收集合的每个元素作为唯一参数,返回 true 或 false。当集合里的每个元素调用 fun 后都返回 true 的时候,整个调用结果为 true,否则为 false。 |
seq.not_any(seq, fun) |
fun 接收集合的每个元素作为唯一参数,返回 true 或 false。当集合里的每个元素调用 fun 后都返回 false 的时候,整个调用结果为 true,否则为 false。 |
seq.some(seq, fun) |
fun 接收集合的每个元素作为唯一参数,返回 true 或 false。当集合里的只要有一个元素调用 fun 后返回 true 的时候,整个调用结果立即为该元素,否则为 nil。 |
seq.eq(value) |
返回一个谓词,用来判断传入的参数是否跟 value 相等,用于 filter 函数,如filter(seq,seq.eq(3)) 过滤返回等于3 的元素组成的集合 |
seq.neq(value) |
与 seq.eq 类似,返回判断不等于的谓词 |
seq.gt(value) |
返回判断大于 value 的谓词 |
seq.ge(value) |
返回判断大于等于 value 的谓词 |
seq.lt(value) |
返回判断小于 value 的谓词 |
seq.le(value) |
返回判断小于等于 value 的谓词 |
seq.nil() |
返回判断是否为 nil 的谓词 |
seq.exists() |
返回判断不为 nil 的谓词 |
seq.and(p1, p2, p3, …) |
组合多个谓词函数,返回一个新的谓词函数,当今仅当 p1、p2、p3 …等所有函数都返回 true 的时候,新函数返回 true |
seq.or(p1, p2, p3, …) |
组合多个谓词函数,返回一个新的谓词函数,当 p1, p2, p3… 其中一个返回 true 的时候,新函数立即返回 true,否则返回 false。 |
seq.min(coll) |
返回集合中的最小元素,要求集合元素可比较(实现 Comprable 接口),比较规则遵循 aviator 规则。 |
seq.max(coll) |
返回集合中的最大元素,要求集合元素可比较(实现 Comprable 接口),比较规则遵循 aviator 规则。 |