`
JohnnyJian
  • 浏览: 106045 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Groovy学习笔记——用inject方法构造Map

阅读更多
假设我们有两个List,分别是a和b,a和b的长度相同,现在我们想把a的每个元素作为key,b中对应的元素作为value,构造一个Map,应该怎么写呢?

最直接的想法,先建立一个空的Map,然后往里面添加key-value对,代码如下(运用了我在http://johnnyjian.iteye.com/blog/271554中提到的同时迭代多个List的技巧):
def a = [1, 2, 3]
def b = [4, 5, 6]

def m = [:]
[a, b].transpose().each { k, v -> m += [(k): v] }
assert m == [1: 4, 2: 5, 3: 6]


但是,其实我们可以通过inject方法,把代码缩减为一行:
def m = [a, b].transpose().inject([:]) { s, l -> s + [(l[0]): l[1]] }
assert m == [1: 4, 2: 5, 3: 6]


以上代码在Groovy 1.6.4下测试通过。
分享到:
评论
3 楼 JohnnyJian 2010-12-23  
k不是什么下标,详细的话你还是看我另外一篇blog吧:http://johnnyjian.iteye.com/blog/271554

key232323 写道
第一个例子应该这么写吧

[a, b].transpose().each { v -> m += [(v[0]): v[1]] } 

和k(下标)没关系的。。。

2 楼 key232323 2010-12-23  
汗。。。二维List原来也可以each{k, v这么用。。。
1 楼 key232323 2010-12-23  
第一个例子应该这么写吧

[a, b].transpose().each { v -> m += [(v[0]): v[1]] } 

和k(下标)没关系的。。。

相关推荐

    Groovy学习笔记 PDF版

    在《Groovy学习笔记》这本书中,你可能会学到如何快速入门Groovy,理解其基本语法,包括变量、控制流、类和对象的创建,以及如何利用Groovy的特性来提高开发效率。此外,书中可能还会涵盖Groovy在实际项目中的应用,...

    Java JDK 6学习笔记——ppt简体版.rar

    通过"Java JDK 6学习笔记——ppt简体版",学习者可以系统地学习到如何使用JDK 6进行开发,包括环境配置、基本语法、类库使用、异常处理、IO流、网络编程、多线程等各个方面。PPT格式通常直观易懂,便于快速理解和...

    Java JDK 6学习笔记——ppt简体版附课本代码

    这份“Java JDK 6学习笔记——ppt简体版”涵盖了Java语言的核心概念、语法特性以及JDK 6的新功能,旨在帮助初学者和有经验的开发者深入理解并掌握这一版本的Java开发环境。 首先,Java JDK 6的安装与配置是学习的...

    Groovy轻松入门——Grails实战基础篇

    ### Groovy轻松入门——Grails实战基础篇 #### 搭建Grails环境及创建Grails Demo程序 **Groovy**是一种面向对象的编程语言,它运行于Java平台上,能够与Java代码无缝集成。而**Grails**则是一款基于Groovy的高性能...

    Groovy 学习笔记

    5. **运算符重载和方法默认参数**: Groovy允许操作符重载和方法定义默认参数,增强了代码的可读性和灵活性。 **二、Groovy与Java的交互** 1. **类和接口**: Groovy可以创建Java兼容的类和接口,因此可以直接与Java...

    Groovy学习笔记.pdf

    Groovy是一种动态、灵活的编程语言,它是Java平台上的一个主要补充,特别是在脚本编写和快速原型设计方面表现突出。...这份"Groovy学习笔记.pdf"应该会提供一个良好的起点,帮助你踏上Groovy的学习之旅。

    Groovy学习笔记

    ### Groovy学习笔记知识点梳理 #### 一、Groovy简介 - **概念**:Groovy是一种灵活的脚本语言,其设计初衷是为了更好地服务于Java开发者。它具备许多现代动态语言的特点,比如Python和Ruby,同时又能够无缝地与Java...

    groovy学习笔记

    以下是对Groovy学习笔记各章节的详细解释: ### 第1章:数字和字符串 在Groovy中,所有的数字都是Object类型的,这意味着你可以在对象上调用方法。例如,你可以直接在数字上使用加减乘除等运算符,如`12 + 8`。...

    Java JDK 6学习笔记——ppt简体版

    本篇学习笔记将围绕Java JDK 6的关键特性、语法改进、API更新以及开发实践进行详细讲解。 1. **Java JDK 6概述** - JDK(Java Development Kit)是Java开发的核心组件,包含了Java运行环境(JRE)、编译器(javac...

    Groovy学习笔记 Struts2集成--Groovy类作为Action

    通过阅读文章《Groovy学习笔记 Struts2集成--Groovy类作为Action》,你可以更深入地了解如何在实际项目中利用Groovy的特性来优化Struts2应用。提供的压缩包文件`struts2-groovy-plugin`可能包含了Struts2 Groovy插件...

    groovy中map的基本操作1

    此外,可以使用`putAll(map2)`方法将一个Map的所有键值对复制到另一个Map中,如`explicitMap = new TreeMap(); explicitMap.putAll(map)`。 比较Map是否相等,可以使用`==`运算符,它会检查两个Map的键值对是否完全...

    Groovy need not rails——介绍自己写的一个基于groovy的框架,Webx

    通过深入学习和使用Webx,开发者可以充分利用Groovy的灵活性和生产力优势,同时享受到类似Rails的开发体验,而不必受限于Ruby语言。由于与Java平台的紧密集成,Webx还能够利用丰富的Java生态系统,为大型企业级应用...

    Groovy 学习资料

    - **脚本支持**:Groovy可以直接作为脚本运行,无需主类或main方法。 - **DSL(领域特定语言)构建**:Groovy非常适合构建DSL,因为它具有强大的字符串模板和元编程能力。 3. **Groovy与Java的互操作性** - **...

    groovy和Java相互调用1

    这里,我们首先创建一个`GroovyClassLoader`来解析Groovy源文件,然后通过`newInstance`方法实例化Groovy类,并使用`invokeMethod`来调用特定的方法。 这种Java与Groovy的交互能力使得开发者可以灵活地利用两种语言...

    Groovy学习资料

    最后,学习Groovy的最佳实践,如如何有效地利用元编程,何时使用静态类型以提高性能,以及如何编写易于理解和维护的代码,这些都是提升Groovy开发技能的重要部分。 通过深入学习和实践这份"Groovy学习资料"中的内容...

    groovy 学习gradle学习经典手册

    《Groovy学习与Gradle实践经典手册》是一本深度探讨Groovy编程语言和Gradle构建工具的指南,专为Android及Java开发人员提供全面的知识覆盖。本书旨在帮助开发者提升在项目管理和自动化构建方面的技能,使其能够高效...

    Java整合Groovy脚本笔记

    Java整合Groovy脚本,Java整合Groovy脚本Java整合Groovy脚本,Java整合Groovy脚本Java整合Groovy脚本,Java整合Groovy脚本Java整合Groovy脚本,Java整合Groovy脚本Java整合Groovy脚本,Java整合Groovy脚本Java整合...

    Groovy语法&Gradle配置学习笔记

    Groovy是一种基于Java平台的...通过上述知识点的学习,你将能够熟练地使用Groovy进行脚本编写,并利用Gradle高效地管理你的项目构建。同时,随着对Groovy和Gradle的深入理解,你将能更好地应对复杂项目的需求和挑战。

Global site tag (gtag.js) - Google Analytics