在嵌套列表中查找最小元素<;列表<;字符串>&燃气轮机;在groovy中使用collect?

在嵌套列表中查找最小元素<;列表<;字符串>&燃气轮机;在groovy中使用collect?,groovy,Groovy,我已经编写了以下示例,用于在嵌套的列表中定位min元素,该列表运行良好: List<String> el0 = ["112", "2"] List<String> el1 = ["11", "222", "45", "1"] List<String> el2 = ["21", "112", "

我已经编写了以下示例,用于在嵌套的
列表中定位
min
元素,该列表运行良好:

List<String> el0 = ["112", "2"]
List<String> el1 = ["11", "222", "45", "1"]
List<String> el2 = ["21", "112", "23"]

List<List<String>> container = new ArrayList<>()

container << el0
container << el1
container << el2

List<String> candidates = container.collect { it.min(new Comparator<String>() {
  @Override
  int compare(String o1, String o2) {
    return Integer.valueOf(o1) <=> Integer.valueOf(o2)

  }
}) }

String min = candidates.min()
println (min)
List el0=[“112”,“2”]
列表el1=[“11”、“222”、“45”、“1”]
列表el2=[“21”、“112”、“23”]
列表容器=新的ArrayList()

容器一种简化的方法可以在展平容器后在一次操作中定位最小值(最小值减少仅进行一次)。它可以看起来像:

String min = container.flatten().min{Integer.valueOf(it)}

可以看出,我还使用了
{Integer.valueOf(it)}
作为闭包来实现
比较器
,这是您使用匿名类实现的。

在展平
容器
后,一种简化的方法可以在一次操作中找到最小值(最小值缩减仅完成一次)。它可以看起来像:

String min = container.flatten().min{Integer.valueOf(it)}

可以看出,我还使用了
{Integer.valueOf(it)}
作为一个闭包来实现
比较器
,这是您使用匿名类实现的。

另一个选项是
List candidates=container*.min{Integer.valueOf(it)}
@tim_-yates,我希望在每个子列表中生成一个包含min的列表。。。除非对结果调用另一个
min()?那个“接线员”叫什么名字?我试着用谷歌搜索,但没有找到matches@u123它是扩展运算符(或扩展点运算符),
*。
。文件是。它在应用该方法的集合的每个元素上的点之后调用该方法,生成一个带有每次调用结果的新集合;在
[1,2,3,4]*.plus(2)=[3,4,5,6]
中,另一个选项是
列表候选项=container*.min{Integer.valueOf(it)}
@tim_-yates,我希望生成一个每个子列表中都有min的列表。。。除非对结果调用另一个
min()?那个“接线员”叫什么名字?我试着用谷歌搜索,但没有找到matches@u123它是扩展运算符(或扩展点运算符),
*。
。文件是。它在应用该方法的集合的每个元素上的点之后调用该方法,生成一个带有每次调用结果的新集合;如
[1,2,3,4]*。加上(2)=[3,4,5,6]