zoukankan      html  css  js  c++  java
  • Groovy系列 Groovy集合

    在Groovy脚本里面,集合Collection可以理解为泛指Map和List。

    List的定义:

    def list = [1, 2, 'hello', new java.util.Date()]
    assert list.size() == 4
    assert list.get(2) == 'hello'
    assert list[2] == 'hello'

    Map的定义:

    def map = ['name':'James', 'location':'London']
    assert map.size() == 2
    assert map.get('name') == 'James'
    assert map['name'] == 'James'

    collection.each(closure)

    遍历,对集合中每项都执行一次闭包,无返回值。

    [1, 2, 3].each({item -> print "${item}-"})
    //1-2-3-

    collection.collect(closure)

    收集,对集合中每项都执行一次闭包,将每项执行的结果组合成一个新的集合然后返回。

    def value = [1, 2, 3].collect { it * 2 }
    assert value == [2, 4, 6]

    collection.find(closure)

    查找,返回闭包执行结果为true的第一项。

    def value = [1, 2, 3].find { it > 1 }
    assert value == 2

    collection.findAll(closure)

    查找全部,返回闭包执行结果为true的所有项。

    def value = [1, 2, 3].findAll { it > 1 }
    assert value == [2, 3]

    collection.inject(first, closure)

    allows you to pass a value into the first iteration and then pass the result of that iteration into the next iteration and so on. This is ideal for counting and other forms of processing

    def value = [1, 2, 3].inject('counting: ') { str, item -> str + item }
    assert value == "counting: 123"
    
    value = [1, 2, 3].inject(0) { count, item -> count + item }
    assert value == 6

    collection.every(closure)

    检查每一个,如果集合中每项执行闭包结果都为true,则返回true,否则返回false。

    def value = [1, 2, 3].every { it < 5 }
    assert value
    
    value = [1, 2, 3].every { item -> item < 3 }
    assert ! value

    collection.any(closure)

    检查任一项,如果集合中有任意一项执行闭包结果为true,则返回true,否则返回false。

    def value = [1, 2, 3].any { it > 2 }
    assert value
    
    value = [1, 2, 3].any { item -> item > 3 }
    assert value == false

    collection.max()和collection.min()

    返回集合中的最大项和最小项。

    value = [9, 4, 2, 10, 5].max()
    assert value == 10
    value = [9, 4, 2, 10, 5].min()
    assert value == 2
    value = ['x', 'y', 'a', 'z'].min()
    assert value == 'a'

    collection.join(str)

    用字符串str连接集合。

    def value = [1, 2, 3].join('-')
    assert value == '1-2-3'
  • 相关阅读:
    PHP设计模式——观察者模式
    TRIZ系列-创新原理-34-抛弃和再生部件原理
    玩转Android Camera开发(三):国内首发---使用GLSurfaceView预览Camera 基础拍照demo
    高速排序算法C++实现
    crm操作报价单实体
    CSS3 网格布局(grid-layout)基础知识
    shadowOffset 具体解释
    [软件人生]关于此次抄袭事件的一个对话
    SpringMVC接收复杂集合对象(参数)代码示例
    Spring MVC同时接收一个对象与List集合对象
  • 原文地址:https://www.cnblogs.com/eastson/p/2519781.html
Copyright © 2011-2022 走看看