博客
关于我
Groovy In Action 笔记 (5) -- List 相关
阅读量:703 次
发布时间:2019-03-13

本文共 1946 字,大约阅读时间需要 6 分钟。

list在Groovy中很重要,记录一下list的一些见操作:

def list = []list << 2// list >> 2 // invalidassert list.size() == 1assert list == [2]//传统添加list.add(3)assert list.size() == 2 //groovy中统一的size 方法assert list == [2,3]list << "a"assert list.size() == 3assert list == [2,3,"a"] //groovy中不限制list中的数据类型,因为背后都是Objectdef other_list = [3]assert list - other_list == [2,"a"] // list可以直接相减def other_list_a = [3,"b"]assert list - other_list_a == [2,"a"] // list可以直接相减assert list * 2 == [2,3,"a",2,3,"a"] // list可以乘以一个数,达到复制效果assert list.intersect(other_list) == [3] // 取交集assert list.reverse() == ["a",3,2]assert !list.disjoint(other_list_a) // 判断有无交集list.each {item -> println(item)}assert list.collect({it*2}) == [4,6,"aa"] // mapdef list_items = [1,2,3]assert list_items.inject {x,y -> x * y} == 6 // reduce or foldassert list_items.findAll {it % 2 == 0} == [2] //取值为偶数元素assert list_items.join(",") == "1,2,3" // join 有时候很有用def complex_list = [1,2,[3,4]]assert complex_list.flatten() == [1,2,3,4]//indexingdef long_list = [1,2,3,4,5,6,7,8]assert long_list[1..3] == [2,3,4]assert long_list[-1] == 8assert long_list[-1..-3] == [8,7,6]assert long_list[-1..0] == long_list.reverse() // 反转assert long_list[-1..-8] == long_list.reverse() // 反转assert long_list[1,2,4] == [2,3,5]assert long_list[0..<2] == [1,2]

 

下面尝试一个简单的快排算法:

/** * @author :ZackZhou * @date :Created in 2020/9/1 5:42 PM * @description :quick sort * @modified By: * @version: */def quickSort(List input_list){    if(input_list.size() < 2)        return input_list    int middle = input_list.size().intdiv(2)    def middle_element = input_list.get(middle)    def middle_list = input_list.findAll{item -> item == middle_element}    def left_list = input_list.findAll{item -> item < middle_element}    def right_list = input_list.findAll{item -> item > middle_element}    return (quickSort(left_list) + middle_list + quickSort(right_list))}def raw_list = [3,24,5,6,6,7,82,6,7,2]quickSort(raw_list).each {println(it)}

 

转载地址:http://papaz.baihongyu.com/

你可能感兴趣的文章
mysql 主键重复则覆盖_数据库主键不能重复
查看>>
Mysql 事务知识点与优化建议
查看>>
Mysql 优化 or
查看>>
mysql 优化器 key_mysql – 选择*和查询优化器
查看>>
MySQL 优化:Explain 执行计划详解
查看>>
Mysql 会导致锁表的语法
查看>>
mysql 使用sql文件恢复数据库
查看>>
mysql 修改默认字符集为utf8
查看>>
Mysql 共享锁
查看>>
MySQL 内核深度优化
查看>>
mysql 内连接、自然连接、外连接的区别
查看>>
mysql 写入慢优化
查看>>
mysql 分组统计SQL语句
查看>>
Mysql 分页
查看>>
Mysql 分页语句 Limit原理
查看>>
MySql 创建函数 Error Code : 1418
查看>>
MySQL 创建新用户及授予权限的完整流程
查看>>
mysql 创建表,不能包含关键字values 以及 表id自增问题
查看>>
mysql 删除日志文件详解
查看>>
mysql 判断表字段是否存在,然后修改
查看>>