<p><strong><span style="font-size: medium;">集合概述</span></strong></p>
<p></p>
<p>1、集合应用很广泛</p>
<p>2、Groovy直接在语言内使用集合</p>
<ul>
<li>不需要导入专门的类,也不需要初始化对象</li>
<li>集合石语言本身的本地成员</li>
</ul>
<p>3、每个Groovy集合都是java.util.Colleciton或java.util.Map的实例</p>
<p>4、List,String,StringBuffer,Range,Map,File,Matcher都是用同一的size()方法获取长度.</p>
<p>如:StringBUffer x = new StringBuffer('ssss');</p>
<p>print x.size() //输出4</p>
<p></p>
<p></p>
<p><span style="font-size: medium;"><strong>列表List一</strong></span></p>
<p></p>
<p>def toys =[['a','001'] , [2,'002'] , ['c', '003']]</p>
<ul>
<li>println toys.class //输出class java.util.ArrayList</li>
<li>assert toys instanceof Collection </li>
<li>print toys[1] //输出[2,'002']</li>
<li>print toys.get(1) //同上</li>
<li>print toys[-2] //同上</li>
<li>print toys[1..<2] //同上</li>
<li>toys[2] = [3,'003'] //修改第3个元素</li>
<li>print toys[-1] //输出: [3,'003']</li>
<li>toys.putAt(2,[33,'333'])</li>
<li>printtoys[-1]//输出[33,'333']</li>
</ul>
<p><span style="font-size: medium;"><strong>列表List二</strong></span></p>
<p></p>
<p>1、toys<<[4,'004'] //追加元素</p>
<p> println toys[-1] //输出:[4,'004']</p>
<p></p>
<p>2、toys1 = [1,2,3] //连接链表</p>
<p> toys2 = toys1 + [4,5]</p>
<p> println toys2 // 输出:[1,2,3,4,5]</p>
<p></p>
<p>3、toys3 = toys2 - [5]//列表中删除元素</p>
<p> println toys3 //输出:[1,2,3,4]</p>
<p></p>
<p><span style="font-size: medium;"><strong>列表List三</strong></span></p>
<p></p>
<p>def toy6 =[]</p>
<ul>
<li>toy6<<'11'</li>
<li>toy6<<'22'</li>
<li>toy6<<'33'</li>
<li>toy6<<'44'</li>
<li>println toy6 //输出['11','22','33','44']</li>
<li>toy6<<[8,'008']</li>
<li>println toy6//输出['11','22','33','44',[8,'008']] 列表中元素无需一样类型 </li>
</ul>
<p><span style="font-size: medium;"><strong>列表List的方法一</strong></span></p>
<p></p>
<p>1、def list=[1,2,3,4]</p>
<ul>
<li>list.add(5) //[1,2,3,4,5]</li>
<li>list.add(2,11) //[1,2,11,3,4,5]</li>
<li>list.addAll([6,7]) //[1,2,11,3,4,5,6,7]</li>
<li>println list.contains(11) //true</li>
<li>println list.containsAll([11,4])//true</li>
<li>println list.indexOf(11) //2</li>
<li>list.remove(2);println list //[1,2,3,4,5,6,7]</li>
<li>list.remveAll([5,6,7])</li>
<li>println list //[1,2,3,4]</li>
<li>list.cleat();println list //[]</li>
</ul>
<p></p>
<p><span style="font-size: medium;"><strong>列表List的方法二</strong></span></p>
<p></p>
<p>1、有些方法会修改原列表,有些方法不修改原列表而只是产生新的列表。</p>
<p> def fList =[1,2,3[4,5]]</p>
<ul>
<li>println fList.flatten() //[1,2,3,4,5]展开后返回新列表</li>
<li>println fList.inersect([3,4,5])//[3],求交集,返回新列表</li>
<li>println fList.pop()//[4,5]删除列表最后元素</li>
<li>println fList.reverse()//[3,2,1],反转列表返回新列表</li>
<li>println fLIst.sort() //[1,2,3]</li>
</ul>
<p>2、计算元素</p>
<p> def gList = [1,1,2,3,4,3]</p>
<p>println gList.count(3) //输出:2 有两个3</p>
<p></p>
<p></p>
<p><span style="font-size: medium;"><strong>映射Map一</strong></span></p>
<p></p>
<p>1、def bookMap = [:] //定义空map</p>
<p> println bookMap.getClass() // 输出class java.util.LinkedHashMap</p>
<p> assert bookMap.size() == 0</p>
<p></p>
<p>2、def toyMap = [1:'toy1',2:'toy2']</p>
<p> assert toyMap.containsValue('toy1')</p>
<p> assert toyMap.containsKey(1) </p>
<p></p>
<p></p>
<p><span style="font-size: medium;"><strong>映射Map二</strong></span></p>
<p></p>
<p>1、println toyMap //输出整个map, [1:'toy1',2:'toy2']</p>
<p> println toyMap[2] // toy2</p>
<p> println toyMap.get(1) // toy1</p>
<p></p>
<p>2、toyMap.each{toy -> println toy.key + ':' + toy.value} // 1:toy1 2:toy2(换行输出) ,toy是指定的闭包参数</p>
<p> toyMao.each{println it.key + ':' + it.value} //输出同上,it是默认闭包参数</p>
<p></p>
<p></p>
<p><span style="font-size: medium;"><strong>映射MAP三</strong></span></p>
<p></p>
<ul>
<li>toyMap.put(3,'toy3') //往map中加入元素</li>
<li>println toyMap//[1:'toy1',2:'toy2',3:'toy3']</li>
<li>topMap.put(3,'toy333') //键已存在,put就变成了修改值</li>
<li>println toyMap //[1:'toy1',2:'toy2',3:'toy333']</li>
<li>toyMap.remove(3) //删除map中的元素,参数是键</li>
<li>println toyMap.size()//获取Map大小 2</li>
<li>println toMap.keySet() //获取Map中的key,输出[1,2]</li>
<li>println toMap.values() //输出:['toy1','toy2']</li>
<li>println toMap.values().asList()//转换为ArrayList</li>
<li>println toMap.values().asList().class //class java.util.ArrayList</li>
</ul>
<p><strong></strong></p>
<p><strong><span style="font-size: medium;">范围一</span></strong></p>
<p></p>
<p>1、def aRange= 1..<5</p>
<p> println aRange //输出[1,2,3,4]</p>
<p> println aRange.class//class groovy.lange.IntRange</p>
<p> assert aRange instanceof List</p>
<p></p>
<p>(1..<5)范围是IntRange的对象,是特殊的List</p>
<p></p>
<p></p>
<p><span style="font-size: medium;"><strong>范围二</strong></span></p>
<p></p>
<p>1、def bRange = 'a'..<'e'</p>
<p> println bRange // 输出: ["a","b","c","d"]</p>
<p> println bRange.class //输出groovy.lang.ObjectRange</p>
<p> assert bRange instanceof List</p>
<p></p>
<p>('a'..<'e')是 ObjectRange的对象,是特殊的List</p>
<p></p>
<p></p>
<p><span style="font-size: medium;"><strong>范围三</strong></span></p>
<p></p>
<p>倒序</p>
<p>1、def cRange = 5..1</p>
<p> println cRange//[5,4,3,2,1]</p>
<p>2、def dRange='e'..'a' //["e","d","c","b"]</p>
<p></p>
<p></p>
<p><span style="font-size: medium;"><strong>范围Range的方法</strong></span></p>
<p></p>
<p>def eRange =1..10</p>
<ul>
<li>println eRange.size() //10</li>
<li>println eRange.contains(5) //true</li>
<li>println eRange.get(8) //9</li>
<li>println eRange.getFrom() //1</li>
<li>println eRange.getTo() //10</li>
<li>prinltn eRange.isReverse() //false</li>
<li>prinltn eRange.subList(3,6)//[4,5,6]</li>
</ul>
<p></p>
<p></p>
<p></p>
<p>1、集合应用很广泛</p>
<p>2、Groovy直接在语言内使用集合</p>
<ul>
<li>不需要导入专门的类,也不需要初始化对象</li>
<li>集合石语言本身的本地成员</li>
</ul>
<p>3、每个Groovy集合都是java.util.Colleciton或java.util.Map的实例</p>
<p>4、List,String,StringBuffer,Range,Map,File,Matcher都是用同一的size()方法获取长度.</p>
<p>如:StringBUffer x = new StringBuffer('ssss');</p>
<p>print x.size() //输出4</p>
<p></p>
<p></p>
<p><span style="font-size: medium;"><strong>列表List一</strong></span></p>
<p></p>
<p>def toys =[['a','001'] , [2,'002'] , ['c', '003']]</p>
<ul>
<li>println toys.class //输出class java.util.ArrayList</li>
<li>assert toys instanceof Collection </li>
<li>print toys[1] //输出[2,'002']</li>
<li>print toys.get(1) //同上</li>
<li>print toys[-2] //同上</li>
<li>print toys[1..<2] //同上</li>
<li>toys[2] = [3,'003'] //修改第3个元素</li>
<li>print toys[-1] //输出: [3,'003']</li>
<li>toys.putAt(2,[33,'333'])</li>
<li>printtoys[-1]//输出[33,'333']</li>
</ul>
<p><span style="font-size: medium;"><strong>列表List二</strong></span></p>
<p></p>
<p>1、toys<<[4,'004'] //追加元素</p>
<p> println toys[-1] //输出:[4,'004']</p>
<p></p>
<p>2、toys1 = [1,2,3] //连接链表</p>
<p> toys2 = toys1 + [4,5]</p>
<p> println toys2 // 输出:[1,2,3,4,5]</p>
<p></p>
<p>3、toys3 = toys2 - [5]//列表中删除元素</p>
<p> println toys3 //输出:[1,2,3,4]</p>
<p></p>
<p><span style="font-size: medium;"><strong>列表List三</strong></span></p>
<p></p>
<p>def toy6 =[]</p>
<ul>
<li>toy6<<'11'</li>
<li>toy6<<'22'</li>
<li>toy6<<'33'</li>
<li>toy6<<'44'</li>
<li>println toy6 //输出['11','22','33','44']</li>
<li>toy6<<[8,'008']</li>
<li>println toy6//输出['11','22','33','44',[8,'008']] 列表中元素无需一样类型 </li>
</ul>
<p><span style="font-size: medium;"><strong>列表List的方法一</strong></span></p>
<p></p>
<p>1、def list=[1,2,3,4]</p>
<ul>
<li>list.add(5) //[1,2,3,4,5]</li>
<li>list.add(2,11) //[1,2,11,3,4,5]</li>
<li>list.addAll([6,7]) //[1,2,11,3,4,5,6,7]</li>
<li>println list.contains(11) //true</li>
<li>println list.containsAll([11,4])//true</li>
<li>println list.indexOf(11) //2</li>
<li>list.remove(2);println list //[1,2,3,4,5,6,7]</li>
<li>list.remveAll([5,6,7])</li>
<li>println list //[1,2,3,4]</li>
<li>list.cleat();println list //[]</li>
</ul>
<p></p>
<p><span style="font-size: medium;"><strong>列表List的方法二</strong></span></p>
<p></p>
<p>1、有些方法会修改原列表,有些方法不修改原列表而只是产生新的列表。</p>
<p> def fList =[1,2,3[4,5]]</p>
<ul>
<li>println fList.flatten() //[1,2,3,4,5]展开后返回新列表</li>
<li>println fList.inersect([3,4,5])//[3],求交集,返回新列表</li>
<li>println fList.pop()//[4,5]删除列表最后元素</li>
<li>println fList.reverse()//[3,2,1],反转列表返回新列表</li>
<li>println fLIst.sort() //[1,2,3]</li>
</ul>
<p>2、计算元素</p>
<p> def gList = [1,1,2,3,4,3]</p>
<p>println gList.count(3) //输出:2 有两个3</p>
<p></p>
<p></p>
<p><span style="font-size: medium;"><strong>映射Map一</strong></span></p>
<p></p>
<p>1、def bookMap = [:] //定义空map</p>
<p> println bookMap.getClass() // 输出class java.util.LinkedHashMap</p>
<p> assert bookMap.size() == 0</p>
<p></p>
<p>2、def toyMap = [1:'toy1',2:'toy2']</p>
<p> assert toyMap.containsValue('toy1')</p>
<p> assert toyMap.containsKey(1) </p>
<p></p>
<p></p>
<p><span style="font-size: medium;"><strong>映射Map二</strong></span></p>
<p></p>
<p>1、println toyMap //输出整个map, [1:'toy1',2:'toy2']</p>
<p> println toyMap[2] // toy2</p>
<p> println toyMap.get(1) // toy1</p>
<p></p>
<p>2、toyMap.each{toy -> println toy.key + ':' + toy.value} // 1:toy1 2:toy2(换行输出) ,toy是指定的闭包参数</p>
<p> toyMao.each{println it.key + ':' + it.value} //输出同上,it是默认闭包参数</p>
<p></p>
<p></p>
<p><span style="font-size: medium;"><strong>映射MAP三</strong></span></p>
<p></p>
<ul>
<li>toyMap.put(3,'toy3') //往map中加入元素</li>
<li>println toyMap//[1:'toy1',2:'toy2',3:'toy3']</li>
<li>topMap.put(3,'toy333') //键已存在,put就变成了修改值</li>
<li>println toyMap //[1:'toy1',2:'toy2',3:'toy333']</li>
<li>toyMap.remove(3) //删除map中的元素,参数是键</li>
<li>println toyMap.size()//获取Map大小 2</li>
<li>println toMap.keySet() //获取Map中的key,输出[1,2]</li>
<li>println toMap.values() //输出:['toy1','toy2']</li>
<li>println toMap.values().asList()//转换为ArrayList</li>
<li>println toMap.values().asList().class //class java.util.ArrayList</li>
</ul>
<p><strong></strong></p>
<p><strong><span style="font-size: medium;">范围一</span></strong></p>
<p></p>
<p>1、def aRange= 1..<5</p>
<p> println aRange //输出[1,2,3,4]</p>
<p> println aRange.class//class groovy.lange.IntRange</p>
<p> assert aRange instanceof List</p>
<p></p>
<p>(1..<5)范围是IntRange的对象,是特殊的List</p>
<p></p>
<p></p>
<p><span style="font-size: medium;"><strong>范围二</strong></span></p>
<p></p>
<p>1、def bRange = 'a'..<'e'</p>
<p> println bRange // 输出: ["a","b","c","d"]</p>
<p> println bRange.class //输出groovy.lang.ObjectRange</p>
<p> assert bRange instanceof List</p>
<p></p>
<p>('a'..<'e')是 ObjectRange的对象,是特殊的List</p>
<p></p>
<p></p>
<p><span style="font-size: medium;"><strong>范围三</strong></span></p>
<p></p>
<p>倒序</p>
<p>1、def cRange = 5..1</p>
<p> println cRange//[5,4,3,2,1]</p>
<p>2、def dRange='e'..'a' //["e","d","c","b"]</p>
<p></p>
<p></p>
<p><span style="font-size: medium;"><strong>范围Range的方法</strong></span></p>
<p></p>
<p>def eRange =1..10</p>
<ul>
<li>println eRange.size() //10</li>
<li>println eRange.contains(5) //true</li>
<li>println eRange.get(8) //9</li>
<li>println eRange.getFrom() //1</li>
<li>println eRange.getTo() //10</li>
<li>prinltn eRange.isReverse() //false</li>
<li>prinltn eRange.subList(3,6)//[4,5,6]</li>
</ul>
<p></p>
<p></p>
本文深入探讨了Groovy语言中的集合概念及其操作方法,包括列表(List)、映射(Map)和范围(Range)等数据结构的基本使用及高级特性。
1867

被折叠的 条评论
为什么被折叠?



