Groovy 映射
除了丰富的列表处理功能,Groovy 还提供了坚固的映射机制。同列表一样,映射也是本地数据结构。而且 Groovy 中的任何映射机制在幕后都是 java.util.Map
的实例。
Java 语言中的映射
Java 语言中的映射是名称-值对的集合。所以,要用 Java 代码创建典型的映射,必须像下面这样操作:
Map<String, String>map = new HashMap<String, String>(); map.put("name", "Andy"); map.put("VPN-#","45");
一个 HashMap
实例容纳两个名称-值对,每一个都是 String
的实例。
通过 Groovy 进行映射
Groovy 使得处理映射的操作像处理列表一样简单 — 例如,可以用 Groovy 将上面的 Java 映射写成
def hash = [name:"Andy", "VPN-#":45]
请注意,Groovy 映射中的键不必是 String
。在这个示例中,name
看起来像一个变量,但是在幕后,Groovy 会将它变成 String
。
全都是 Java
接下来创建一个新类 Mapper
并加入上面的代码。然后添加以下代码,以证实底层的代码是真正的 Java 代码:
assert hash.getClass() == java.util.LinkedHashMap
可以看到 Groovy 使用了 Java 的 LinkedHashMap
类型,这意味着可以使用标准的 Java 一样语句对 hash
中的项执行 put
和 get
操作。
hash.put("id", 23) assert hash.get("name") == "Andy"
有 groovy 特色的映射
现在您已经看到,Groovy 给任何语句都施加了魔法,所以可以用 .
符号将项放入映射中。如果想将新的名称-值对加入映射(例如 dob
和 “01/29/76”),可以像下面这样操作:
hash.dob = "01/29/76"
.
符号还可以用来获取项。例如,使用以下方法可以获取 dob
的值:
assert hash.dob == "01/29/76"
当然 .
要比调用 get()
方法更具 Groovy 特色。
位置映射
还可以使用假的位置语法将项放入映射,或者从映射获取项目,如下所示:
assert hash["name"] == "Andy" hash["gender"] = "male" assert hash.gender == "male" assert hash["gender"] == "male"
但是,请注意,在使用 []
语法从映射获取项时,必须将项作为 String
引用。
相关推荐
IDEA通过Generate.POJOs.groovy映射数据库自动生成对应的Java实体类, 具体逻辑不详细展示,可参考:https://blog.csdn.net/weixin_40375601/article/details/106807644
函数式编程在Groovy中也得到了很好的支持,如列表和映射的操作。Groovy的列表支持链式操作,如`list.each{println it}`,这会遍历列表并对每个元素执行指定的操作。映射可以通过键值对进行操作,如`map.each{k, v ->...
并且提到了Groovy的IDE和编辑器支持情况,以及一些Groovy的基础知识,如类和对象的声明、使用脚本、处理文本、数字、列表、映射和范围,以及如何在Java环境中运行Groovy代码。 需要注意的是,文档中出现的金融信息...
Groovy是一种基于Java平台的、动态的、面向对象的编程语言,它被广泛用于脚本编写、自动化任务、测试等领域。在Groovy中发送HTTP请求是开发者经常需要进行的操作,尤其是在进行API测试或者集成第三方服务时。下面...
Groovy支持多种集合数据类型,如列表(List)、映射(Map)等,这些数据类型的使用方式与Java相似,但Groovy提供了更多的语法糖,使得代码更加简洁易读。 #### 六、元编程 Groovy强大的元编程特性使得开发者能够...
此外,Groovy还有闭包(Closure)的概念,这是Groovy强大的功能之一,它可以用来处理函数式编程任务,如数据过滤和映射。 其次,Groovy的动态特性是另一个关键知识点。Groovy可以在运行时改变类的结构,这意味着你...
- **映射(Map)**:Groovy中的映射类似于Java中的HashMap,提供了键值对存储。 - **集合操作**:Groovy提供了丰富的集合操作方法,如filter、find、sort等,使得集合处理变得更加简单。 **4. 闭包** - **定义**...
Groovy中的列表(List)和映射(Map)使用非常直观。列表可以通过下标访问,映射则通过键值对操作: ```groovy List list = [1, 2, 3] Map map = [key1: 'value1', key2: 'value2'] println list[0] // 输出:...
**GOM: Groovy 对象映射器** Groovy 对象映射器(GOM)是一种在Groovy编程语言中使用的工具,它主要用于对象到JSON、XML或其他数据格式之间的转换。GOM使得数据序列化和反序列化变得更加简单,极大地提高了开发效率...
在Groovy中,列表和映射的使用也非常方便。它们的语法简洁且直观,类似于Python和JavaScript: ```groovy // 列表 def numbers = [1, 2, 3, 4, 5] numbers.each { println it } // 输出 1 2 3 4 5 // 映射 def ...
3. **简洁的语法糖**:Groovy提供了一些Java没有的语法糖,如列表和映射的简写,以及三元运算符的简化形式。这使得代码更加易读和简洁。 4. **元编程**:Groovy允许在运行时修改或扩展类的行为,这是通过元编程实现...
- **列表和映射的本地语法**:Groovy提供了更加简洁的语法来表示列表(List)和映射(Map)。 - **Groovy标记**: 支持多种标记语言,如XML、HTML等。 - **GroovyPath表达式语言**:类似于XPath,用于处理XML文档。 - **...
在这里,读者将学习到Groovy如何处理列表、集合、映射等集合型数据类型,这些数据类型的强大功能极大地简化了数据操作的复杂度。 #### 工作于闭包 闭包是Groovy的一个重要特性,它允许开发者定义可携带状态的匿名...
此外,Groovy对集合操作进行了增强,如便利的列表和映射操作,以及对Java流的支持。 学习和理解这些CHM文件中的内容,开发者可以更好地掌握Groovy语言的各个方面,包括其动态特性、元编程能力以及与Java的互操作性...
Groovy的集合类型包括ranges(范围)、lists(列表)、maps(映射)等,它们提供了丰富的操作符和方法,使得数据结构的操作变得简洁而高效。Groovy的集合类型还支持并行操作,提高了处理大量数据时的性能。 ### ...
本案例聚焦于使用Groovy脚本语言来实现一个特定的功能:从明细表中提取字段值,并将其更新到主表对应的字段中。这样的操作对于数据同步、报表生成以及业务流程自动化等场景非常常见。 Groovy是一种动态、灵活的Java...
- **列表和映射的简写**:Groovy允许用方括号快速创建列表和映射,如`[1, 2, 3]`和`['key': 'value']`。 4. **Groovy与Java的互操作性** - Groovy可以直接调用Java的类库,反之亦然,这使得在既有Java项目中集成...
Groovy提供类似于Java的语法结构,本地化支持映射和列表、方法、类,闭包和构造器等结构。由于具有动态弱类型,以及无缝访问JavaAPI等特性,Groovy语言非常适合子开发中小型规模的应用程序。 相对于Java语言,...