当前位置: 首页 > 面试题库 >

从groovy中的列表创建地图的快捷方式?

齐昆
2023-03-14
问题内容

我想要一些排序方法:

Map rowToMap(row) {
    def rowMap = [:];
    row.columns.each{ rowMap[it.name] = it.val }
    return rowMap;
}

鉴于GDK的工作方式,我希望能够做类似的事情:

Map rowToMap(row) {
    row.columns.collectMap{ [it.name,it.val] }
}

但我没有在文档中看到任何内容…我缺少什么吗?还是我太懒了?


问题答案:

最近,我遇到了需要完全做到这一点的需求:将列表转换为地图。这个问题是在Groovy版本1.7.9发布之前发布的,因此该方法collectEntries尚不存在。它与建议的collectMap方法完全相同

Map rowToMap(row) {
    row.columns.collectEntries{[it.name, it.val]}
}

如果由于某种原因你坚持使用旧的Groovy版本,该inject方法也可以用这是一个经过稍微修改的版本,在闭包内部仅使用一个表达式(只是为了节省字符!):

Map rowToMap(row) {
    row.columns.inject([:]) {map, col -> map << [(col.name): col.val]}
}

+运营商还可以用来代替<<



 类似资料:
  • 问题内容: 我有一张地图清单。 列表中的值例如是 最后,我想要一个Map>,就像 如何在Java中实现这一目标。 代码: 现在,基于与我想要的相同ID,此genericList是该列表的输入并来自此列表 基本上,要根据ID将响应归类为String,将具有相同ID的响应分组在列表中,然后创建一个以ID为键并以列表为值的新映射。 问题答案: 您可以使用Java 8进行以下操作: 这将打印: 整数:1

  • 问题内容: 我有一张地图,其中“值”是项目列表: 我想从地图中提取项目,但仅提取1个项目列表: 我已经看到了答案,但它们不适用于我的情况。我不想要这个结果: 我想要的结果是: 如何使用JAVA 8 Streams实现此目的?谢谢。莱昂纳多。 问题答案: 感谢@Holger的回答。 在值映射中的Collection为Null的情况下避免NullPointerException的代码:

  • 问题内容: 我经常需要获取对象列表,然后根据对象中包含的值将它们分组为Map。例如。列出用户和国家(地区)分组。 我的代码通常如下所示: 但是,我不禁会认为这很尴尬,某些专家有更好的方法。到目前为止,我能看到的最接近的是Google Collections的MultiMap。 有没有标准的方法? 谢谢! 问题答案: 在Java 8中,您可以使用。 或者,请使用流API的是从去到直接: 在Java

  • 问题内容: 所以我想知道如何最好地创建一个空白列表的列表: 由于Python如何处理内存中的列表,因此不起作用: 这确实会创建,但是每个元素都是相同的列表: 类似于列表理解的作品: 但这使用Python VM进行循环。有什么方法可以使用隐式循环(利用C语言编写的代码)吗? 这实际上要慢一些。:( 问题答案: 可能唯一的方法是比 是 它不必每次迭代都创建一个新对象,并且在我的计算机上快15%。 编辑

  • 本文向大家介绍批处理BAT创建快捷方式,包括了批处理BAT创建快捷方式的使用技巧和注意事项,需要的朋友参考一下 发个有用的东西——批处理创建快捷方式。非我原创,这里整理一下,希望对大家有用。 一、批处理生成快捷方式: 1、可以直接生成: 2、也可以先设置变量: 二、查看与解释 1、生成的快捷方式是一个url链接,用记事本打开,得到以下内容: 2、以下是快捷方式内容的解释: 三、Windows系统S

  • 问题内容: 嗨,我已经创建了我的Java程序的可执行jar,我想为该jar创建快捷方式图标。可能是我的jar位于硬盘驱动器的任何其他内存位置(例如Windows的D或E驱动器),但是我的图标必须位于桌面上。这样,如果我双击桌面上的图标,则我的应用程序将启动。如何建立这个 感谢Sunil Kumar Sahoo 问题答案: 您需要四处寻找Java Windows Installer,它们具有创建桌面