【Groovy】集合声明与访问 ( 使用 [] 创建 ArrayList 和 LinkedList 集合 | 集合赋初值 | 使用下标访问集合 | 使用 IntRange 作为下标访问集合 )
文章目录
- 一、使用 [] 创建集合
- 1、使用 [] 创建 ArrayList 集合
- 2、使用 [] 创建 LinkedList 集合
- 二、访问集合中的元素
- 1、集合赋初值
- 2、使用下标访问集合元素
- ( 1 ) 正常下标
- ( 2 ) 负数下标
- ( 3 ) 正数下标但超出范围
- 3、使用 IntRange 作为下标访问集合
- 4、修改使用 IntRange 作为下标访问集合不影响原集合的元素值
- 三、完整代码示例
一、使用 [] 创建集合
1、使用 [] 创建 ArrayList 集合
将 [] 赋值给变量 , 默认就是创建 ArrayList 集合 ; 在下面的代码中 , 打印 [] 变量类型 ;
其结果是 class java.util.ArrayList ;
// 使用 [] 为变量赋值// 该变量默认为 ArrayList 类型def list = []// 打印 [] 变量类型println list.class
2、使用 [] 创建 LinkedList 集合
如果要创建 LinkedList 集合 , 可以在变量的赋值后面添加 as LinkedList , 就可以将该变量声明为 LinkedList 集合 ;
其执行结果为 class java.util.LinkedList ;
// 创建 LinkedListdef list1 = [] as LinkedList// 打印 list1 变量类型println list1.class
二、访问集合中的元素
1、集合赋初值
在 [] 中 , 可以设置多个相同类型的元素 , 各个元素之间使用逗号隔开 ;
下面的代码相当于创建了 ArrayList<String> 集合 , 并为该集合赋值 333 个元素 , 分别是 “1”, “2”, “3” ;
def list2 = ["1", "2", "3"]
2、使用下标访问集合元素
( 1 ) 正常下标
使用 [0] , [1] 等 合法的正常下标 , 可以访问集合中的元素 , 该用法与 Kotlin 类似 ;
def list2 = ["1", "2", "3"]// 通过下标访问集合元素print list2[0] + " "print list2[1] + " "print list2[2] + " "
打印结果为
1 2 3
( 2 ) 负数下标
如果 下标为负数 , 如 -1 , 则相当于访问倒数第一个取值 , 即访问 list.size() - 1 下标取值 , 下面的两种用法是等效的 ;
// 为 ArrayList 设置初始值def list2 = ["1", "2", "3"]// 访问集合的 -1 元素下标// 相当于倒过来取值 , 倒数第一个取值println list2[-1] + " "// 该用法等价于 -1 下标取值println list2[list2.size() - 1] + " "
打印结果为 :
3
3
( 3 ) 正数下标但超出范围
如果 ArrayList 取值的下标是正数 , 但是超过了范围 , 则获取的值为 null ;
// 为 ArrayList 设置初始值def list2 = ["1", "2", "3"]// 如果下标超出了 , 获取的值为 nullprintln list2[4] + " "
3、使用 IntRange 作为下标访问集合
IntRange 实例对象 也可以作为 集合的访问下标 , 获取的是一个 新的子集合 ;
// 为 ArrayList 设置初始值def list2 = ["1", "2", "3"]// 取其中的某个范围的值println list2[0..1] + ""println list2[1..2] + ""
打印结果 :
[1, 2, ]
[2, 3, ]
4、修改使用 IntRange 作为下标访问集合不影响原集合的元素值
修改使用 IntRange 作为下标访问集合 不影响原集合的元素值 , 原来集合中的元素的值不变 , 这说明获取的集合是 新创建的一个集合 ;
// 为 ArrayList 设置初始值def list2 = ["1", "2", "3"]// 取出的值组成的是一个新的集合// 修改新集合中的数据 , 不会对老集合产生影响def list3 = list2[0..2]list3[0] = "8"println list2println list3
执行结果 :
[1, 2, 3]
[8, 2, 3]
三、完整代码示例
完整代码示例 :
class Test {static void main(args) {// I . 创建 ArrayList 集合// 使用 [] 为变量赋值// 该变量默认为 ArrayList 类型def list = []// 打印 [] 变量类型println list.class// II . 创建 LinkedList 集合// 创建 LinkedListdef list1 = [] as LinkedList// 打印 list1 变量类型println list1.class// III . 创建 ArrayList 为集合元素赋值 , 使用下标访问集合元素// 为 ArrayList 设置初始值def list2 = ["1", "2", "3"]// 通过下标访问集合元素print list2[0] + " "print list2[1] + " "print list2[2] + " "println ""// 访问集合的 -1 元素下标// 相当于倒过来取值 , 倒数第一个取值println list2[-1] + " "// 该用法等价于 -1 下标取值println list2[list2.size() - 1] + " "// 如果下标超出了 , 获取的值为 nullprintln list2[4] + " "// 取其中的某个范围的值println list2[0..1] + ""println list2[1..2] + ""// 取出的值组成的是一个新的集合// 修改新集合中的数据 , 不会对老集合产生影响def list3 = list2[0..2]list3[0] = "8"println list2println list3}
}
执行结果 :
class java.util.ArrayList
class java.util.LinkedList
1 2 3
3
3
null
[1, 2, ]
[2, 3, ]
[1, 2, 3]
[8, 2, 3]
【Groovy】集合声明与访问 ( 使用 [] 创建 ArrayList 和 LinkedList 集合 | 集合赋初值 | 使用下标访问集合 | 使用 IntRange 作为下标访问集合 )相关推荐
- Java集合系列---List源码解析(ArrayList和LinkedList的区别)
List源码主要讲ArrayList,LinkedList,Vector三个类 1 ArrayList ArrayList是一个底层基于数组的集合, 首先来看一下它的继承关系, public clas ...
- #Java教程:集合 #Collection、List、Set #ArrayList、LinkedList、Vector、HashSet、TreeSet #一个斗地主小游戏@FDDLC
一.概述 Java单列集合中最顶层的是Collection接口,Collection下又分List和Set两大类: 学习Java集合的时候,建议自顶向下学:先学Collection,再学List和Se ...
- ArrayList与LinkedList的性能分析
作者:小码哥Damon 链接:https://juejin.cn/post/6968633784874827784 来源:掘金 1. 前言 经常在面试时,被问到集合的概念,集合 List.Map.Se ...
- Java集合框架源码解析之ArrayList
ArrayList 可能是很多人使用得最为频繁的容器类了,ArrayList 实现了 List 接口,是一个有序容器,即存放元素的顺序与添加顺序相同,允许添加相同元素,包括 null ,底层通过数组来 ...
- 1.3 List集合:ArrayList和LinkedList类的用法及区别
List集合: List 是一个有序.可重复的集合,集合中每个元素都有其对应的顺序索引. List 集合允许使用重复元素,可以通过索引来访问指定位置的集合元素. List 集合默认按元素的添加顺序设置 ...
- Java 集合系列(2): ArrayList源码深入解析和使用示例
戳上面的蓝字关注我们哦! 精彩内容 精选java等全套视频教程 精选java电子图书 大数据视频教程精选 java项目练习精选 概要 上一章,我们学习了Collection的架构.这一章开始,我们对C ...
- JAVA day18,19 单列集合Collection:List(ArrayList,LinkedList,Vector)、Queue(Deque)、Set(HashSet,TreeSet),比较器
Collection单列集合 所有超级接口: Iterable<E> 所有已知子接口: BeanContext, BeanContextServices, BlockingDeque< ...
- 集合框架及ArrayList、LinkedList源码的个人理解
目录 一.框架 二.集合 三.Collection集合 四.List集合 4.1 List子接口 4.2 数组与链表 4.3 ArrayList[重点] 4.4 LinkedList 4.5 Vect ...
- 14.1 常见数据结构、List集合(ArrayList、LinkedList)、Set集合(HashSet、LinkedHashSet)、可变参数方法
目录 常见的数据结构 栈 队列 数组 链表 红黑树 二叉树binary tree List集合 List接口中常用方法 列:List接口常用方法练习 ArrayList集合 LinkedList集合 ...
最新文章
- Flink-on-yarn
- GCC安装UBUNTU
- 【收藏】ArcGIS 10.8 for Desktop 完整安装教程(含win7/8/10 32/64位+下载地址+亲测可用+汉化)
- 还不知道这 11 个超酷的编程新工具你就 out 了!
- java-Comparable和Comparator的用法
- 2013年成都现场赛赛后总结
- ios中怎么样调节占位文字与字体大小在同一高度
- 对比Python,看看Excel如何3步给证件照换底色!
- kubernetes 学习记录-two
- React router v6写法总结
- HDU P4699 Editor
- c语言计算乘方不使用乘法,C语言乘方运算之矩阵乘方题解
- SSL 3.0曝出Poodle漏洞的解决方案
- [E::hts_idx_push] NO_COOR reads not in a single block at the end 10 -1
- html表格左右布局,css table布局大法,解决你大部分居中、多列等高、左右布局的问题...
- 华夫饼为什么不松软_华夫饼0添加太难了,在家才能做到,松软有营养,好吃又减肥...
- libuv 原理_进程 | libuv中文教程
- 搭建K8S集群之node节点部署
- 游戏3D建模师职业生涯规划,年薪百万学习路线
- JavaScript說分明