核心数据结构: Groovy 兼容 Java 集合,且提供简化的字面量语法
1. 列表(List)
基于 java.util.ArrayList,支持动态扩容,语法简化:
def list = [1, 2, 3, "Groovy"] // 字面量声明(无需 new ArrayList)
list.add(4) // Java 方法兼容
list << 5 // Groovy 重载运算符(追加元素)
println list[0] // 索引访问(同 Java)
println list[-1] // 反向索引(最后一个元素,Groovy 独有)
println list[1..3] // 范围切片([2,3,"Groovy"])
// 常用方法
list.each { println it } // 遍历(it 是默认迭代变量)
def newList = list.collect { it * 2 } // 映射转换([2,4,6,"GroovyGroovy",10,10]
2. 映射(Map)
基于 java.util.LinkedHashMap,键默认是字符串(无需引号):
def map = [name: "Groovy", version: 4.0] // 键name/version自动转为字符串
map.author = "Apache" // 动态添加键值对
println map["name"] // 索引访问
println map.version // 属性访问(Groovy 独有)
// 遍历
map.each { key, value ->
println "$key: $value"
}
3. 范围(Range)
特殊的 List,语法 start..end(闭区间)或 start..<end(左闭右开):
def range = 1..5 // [1,2,3,4,5]
def range2 = 1..<5 // [1,2,3,4]
println range.contains(3) // true
range.each { println it } // 遍历1-5
浙公网安备 33010602011771号