【问题标题】:Finding elements with same lastletter in a list [closed]在列表中查找具有相同最后一个字母的元素[关闭]
【发布时间】:2026-01-21 06:35:01
【问题描述】:

我正在尝试弄清楚如何使用闭包来查找具有相同结尾字母的单词组。

例如:[联合、静态、快速、定向] 返回应该是 ["D":3, "c":1]

【问题讨论】:

  • 请添加您尝试过的代码以及失败的原因(例如错误、堆栈跟踪、日志等),以便我们对其进行改进。
  • def answer = {list -> example .groupBy {it [1]} }.....example 是一个变量

标签: groovy groovy-console


【解决方案1】:

如果要分组使用:

def list = ['United', 'Static', 'Rapid', 'Directed']

def groupped = list.groupBy{ it[ -1 ] }
assert groupped == [d:['United', 'Rapid', 'Directed'], c:['Static']]

仅用于计数,您可以使用:

def counted = list.inject( [:].withDefault{ 0 } ){ res, curr ->
  res[ curr[ -1 ] ]++
  res
}
assert counted == [d:3, c:1]

【讨论】:

  • 谢谢。关闭需要返回地图链接字母。我该怎么办?
  • 举个例子
  • 例如给定[[United, Static, Rapid, Directed] ],应该返回的地图是['d': 3, 'c': 1]。
最近更新 更多