【问题标题】:How to get the all but the last item of this given list in Groovy?如何在 Groovy 中获取此给定列表中除最后一项之外的所有内容?
【发布时间】:2013-01-22 19:00:49
【问题描述】:

这听起来可能很简单,但我有点纠结于如何打印所有内容但忽略列表中的最后一个元素的逻辑。任何建议都会有所帮助。

代码

    def list = [
        'homePage',
        'productPage',
        'basketPage',
        'categoryPage'
    ]
    def counter = 1
    list.each { element ->
        if (element == list.last()){
            list.remove(3)
            println "Item $counter -" + element 
        }
    }

预期输出

第 1 项 - 主页
第 2 项 - 产品页面
第 3 项 - 购物篮页面

【问题讨论】:

标签: groovy


【解决方案1】:

它可以比@SteveD 答案短:

println list[0..-2]

【讨论】:

    【解决方案2】:

    Groovy 支持对集合进行范围操作:

    print list[0..list.size-2]
    

    这将打印:

    [homePage, productPage, basketPage]
    

    【讨论】:

      【解决方案3】:

      解决方案:

      list.take(list.size() - 1)
      

      ​ 使用 println:

      list.take(list.size() - 1).eachWithIndex { element, i ->
          println "Item " + i + " - " + element
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-03-13
        • 2015-08-21
        • 1970-01-01
        • 2011-03-31
        • 1970-01-01
        • 1970-01-01
        • 2020-01-25
        • 2011-11-07
        相关资源
        最近更新 更多