在Groovy中将列表转换为枚举列表

时间:2018-12-20 10:35:09

标签: java arraylist groovy

我有一个这种类型的字符串列表:

list = ['AB-000 Some text', 'AB-003 Some other text', 'AB-004 Some more text']

如何枚举此列表(使用Groovy),即获取以下内容:

list = ['1. AB-000 Some text', '2. AB-003 Some other text', '3. AB-004 Some more text']

2 个答案:

答案 0 :(得分:2)

您可以执行以下操作:

list.withIndex().collect{ it, index -> "${index + 1}. ${it}" }

更新: (由https://gist.github.com/michalbcz/2757630提供)

或者您可以看中并实际定义collectWithIndex方法:

List.metaClass.collectWithIndex = { yield ->
    def collected = []
    delegate.eachWithIndex { listItem, index ->
        collected << yield(listItem, index)
    }

    return collected 
}

result = list.collectWithIndex { it, index -> "${index + 1}. ${it}" }

答案 1 :(得分:1)

或者您可以使用indexed并将其开头的数字传递给

list.indexed(1).collect { idx, s -> "$idx. $s" }