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'
  • 相关阅读:
    两套经典的用户画像-梁宁
    准研一假期的减脂半自律计划
    网络科学导论【第六章】读书脑图
    常见规则网络
    网络科学导论【第五章】读书脑图
    复杂网络链路预测的研究现状及展望
    Python之@property详解及底层实现介绍
    Python触发异常
    一份较认可的文献阅读方案
    HITS算法简介
  • 原文地址:https://www.cnblogs.com/eastson/p/2519781.html
Copyright © 2011-2022 走看看