Groovy开发

集合

  • Groovy支持最常见的两个java集合:java.util.Collectionjava.util.Map

Listjava.util.Collection

定义

  //java定义
  List list = new ArrayList(); 
  //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的迭代方式
...
  • 新特性
//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;
  }

你可能感兴趣的:(Groovy开发)