博客
关于我
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中like % %模糊查询
查看>>
MySql中mvcc学习记录
查看>>
mysql中null和空字符串的区别与问题!
查看>>
MySQL中ON DUPLICATE KEY UPDATE的介绍与使用、批量更新、存在即更新不存在则插入
查看>>
MYSQL中TINYINT的取值范围
查看>>
MySQL中UPDATE语句的神奇技巧,让你操作数据库如虎添翼!
查看>>
Mysql中varchar类型数字排序不对踩坑记录
查看>>
MySQL中一条SQL语句到底是如何执行的呢?
查看>>
MySQL中你必须知道的10件事,1.5万字!
查看>>
MySQL中使用IN()查询到底走不走索引?
查看>>
Mysql中使用存储过程插入decimal和时间数据递增的模拟数据
查看>>
MySql中关于geometry类型的数据_空的时候如何插入处理_需用null_空字符串插入会报错_Cannot get geometry object from dat---MySql工作笔记003
查看>>
mysql中出现Incorrect DECIMAL value: '0' for column '' at row -1错误解决方案
查看>>
mysql中出现Unit mysql.service could not be found 的解决方法
查看>>
mysql中出现update-alternatives: 错误: 候选项路径 /etc/mysql/mysql.cnf 不存在 dpkg: 处理软件包 mysql-server-8.0的解决方法(全)
查看>>
Mysql中各类锁的机制图文详细解析(全)
查看>>
MySQL中地理位置数据扩展geometry的使用心得
查看>>
Mysql中存储引擎简介、修改、查询、选择
查看>>
Mysql中存储过程、存储函数、自定义函数、变量、流程控制语句、光标/游标、定义条件和处理程序的使用示例
查看>>
mysql中实现rownum,对结果进行排序
查看>>