集合
- Groovy支持最常见的两个java集合:
java.util.Collection
和java.util.Map
Listjava.util.Collection
定义
//java定义
List<String> list = new ArrayList<String>();
//groovy新特性
List list = [] //一个空集合
List list = ["xxx","yyy","zzz"] //创建并对集合赋值
操作
list.add("xxx")
list << "yyy"
list[list.size()] = "zzz"
//跟数组相同的索引方式,下标从0开始
list[list.size()-1]
list[2]
//支持负数下标索引
list[-1] //索引其倒数第1个元素
list = list + 5 //在集合中添加元素5,相当于list.add()
list = list - "xxx" //移除从集合开始位置起的第一个xxx元素
list = list - list[0] //移除集合第一个元素
list = list - list[0..4] //移除集合前五个元素
迭代
...
//java方式迭代
...
//each迭代
list.each {
println "This is ${it}" //it表示但前迭代的值,${it}是groovy取值的表达式
};
//for迭代
for(String item : list){
println "This is ${item}"
}
Mapjava.util.Map
描述
- Map是“键-值”对的集合,在groovy中,键不一定是String,可以是任何对象(实际上Groovy中的Map就是java.util.LinkedHashMap)。
定义
//java定义方式
...
//groovy新特性
Map map = ['name':'john' , 'age':14 , 'sex':'boy'];
操作
map=map+['weight':25]
map.put('length',1.27)
map.father='Keller'
map['father'] //通过key作为下标索引
map.father //通过key作为成员名索引
- 在groovy里提供了快速简洁的遍历方式,无须像
java
中那样使用for
循环或者iterator
迭代!
Map map = new HashMap();
map.put("a" , "A");
map.put("b" , "B");
map.Each{k,v->//k,v->可不写
//k表示map中的每一个key;v表示map中这个key对应的value
System.out.print(k+"-"+v+";");//结果是:a-A;b-B;
}
网友评论