原创 Groovy Tip 6 集合类的简化操作收藏

新一篇: Groovy探索之闭包 三 | 旧一篇: Grails探索之Template

                      Groovy Tip 6 集合类的简化操作
 
Groovy语言对Java语言的简化在集合类上是表现最为突出的,那个著名的each方法就不需要我多说了,因为“地球人都知道”。
一.赋初值的简化
对于List对象,在Java语言中是这样赋初值的:
       List list = new ArrayList();
      
       list.add("a");
       list.add("b");
    list.add("c");
 
十分的繁琐,在Groovy语言里只需要这样赋初值:
List list = ['a','b','c']
 
这简直是太简单了。
 
同样,对于Map对象,在Java语言中是这样赋初值的:
       Map map = new HashMap();
       map.put("name", "tom");
       map.put("age", "4");
    map.put("addr", "shenzhen");
 
同样是相当的繁琐,但是在Groovy语言里:
Map map = ['name':'tom','age':'4','addr':'shenzhen']
 
同样是很简单的。
 
二.取值的简化
在Java语言中,对List对象取值如下:
list.get(0)
 
但是在Groovy语言中,List对象可以像数组一样取值:
    List list = ['a','b','c']
   
println list[0]
 
Java语言中,对Map对象的取值如下:
       Map map = new HashMap();
       map.put("name", "tom");
       map.put("age", "4");
       map.put("addr", "shenzhen");
      
    System.out.println(map.get("name"));
 
Groovy语言中,Map对象可以这样取值:
    Map map = ['name':'tom','age':'4','addr':'shenzhen']
   
println map['name']
 
还可以这样取值:
    Map map = ['name':'tom','age':'4','addr':'shenzhen']
   
println map.name
 
 
三.给集合类增加元素
在Java语言中,给List对象增加一个元素如下:
       List list = new ArrayList();
       list.add("1");
       String[] strs = (String[])list.toArray(new String[0]);
      
    list.add("a");
 
是的,使用add方法。
而在Groovy语言中,你只需使用如下方法:
    List list = ['a','b','c']
   
    list<<'d'
   
println list
 
是的,我们使用“<<”符号给List对象增加元素。
 
Java语言中,给Map对象增加一个元素如下:
       Map map = new HashMap();
       map.put("name", "tom");
       map.put("age", "4");
       map.put("addr", "shenzhen");
      
       System.out.println(map.get("name"));
      
    map.put("abc", "abc");
 
不错,还是使用put方法。
而在Groovy语言中,我们只需这样做:
    Map map = ['name':'tom','age':'4','addr':'shenzhen']
   
    map['abc'] = 'abc'
println map
 
 

发表于 @ 2008年04月23日 09:18:00|评论(loading...)|编辑

新一篇: Groovy探索之闭包 三 | 旧一篇: Grails探索之Template

评论

#eicesoft 发表于2008-04-25 09:05:56  IP: 116.230.92.*
和PHP的数组比,还是差远了..PHP的数组即是列表也是Map.
//作为一个List
$a = array('a','b','c');
echo $a[0];
$a[] = 'c'; //添加一个元素
//作为Map
$b = array(
'name' => 'tom',
'age' => 4,
'addr' => 'shenzhen'
);

$b['abc'] = 'abc';
echo $b['abc'];
#hivon 发表于2008-04-25 10:39:54  IP: 61.57.242.*
To eicesoft,

据您所说,在PHP里声明List,如下:
//作为一个List
$a = array('a','b','c');
但是在Groovy里却这样声明:
def a = ['a','b','c']

而您说在PHP里声明Map如下:
//作为Map
$b = array(
'name' => 'tom',
'age' => 4,
'addr' => 'shenzhen'
);
而在Groovy里声明Map却是如下:
Map map = ['name':'tom','age':'4','addr':'shenzhen']

不知道您所说的“和PHP的数组比,还是差远了”表现在哪里?我感觉从编码的方便性上来说,Groovy在List和Map的声明上都比您所说的PHP要强!
#pancras 发表于2008-04-28 11:05:04  IP: 125.76.216.*
我可以十分负责的说
输入一个冒号比输入一个"=>"方便
输入一个$也麻烦些
#johnnyjian 发表于2008-04-29 11:27:55  IP: 10.71.16.*
To pancras,

赞成^_^
我个人是觉得php是我见过最混乱的语言了,四不像的语法加上一个混乱的标准库,不过幸好有像Zend Framework这样的官方框架,可以稍微改善一下状况……
以上言论只是个人观点,不代表任何Groovyer的看法^_^
发表评论  


当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
Csdn Blog version 3.1a
Copyright © hivon