Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Groovy 合并至少有一个共同项的列表_Groovy - Fatal编程技术网

Groovy 合并至少有一个共同项的列表

Groovy 合并至少有一个共同项的列表,groovy,Groovy,我在groovy中有一个列表。某些嵌套列表具有某些共同项。我希望将至少有一个共同项的所有嵌套列表合并到一个列表中,例如: 我的列表摘录: [[buy, order, bought, purchase], [opinion, point of view], [opinion, belief], [buy, purchased], [buy, order, purchases]] (嵌套列表的顺序是随机的) 我希望达到的目标是: [[buy, order, bought, purchase

我在groovy中有一个列表。某些嵌套列表具有某些共同项。我希望将至少有一个共同项的所有嵌套列表合并到一个列表中,例如:

我的列表摘录:

[[buy, order, bought, purchase],
 [opinion, point of view],
 [opinion, belief],
 [buy, purchased],
 [buy, order, purchases]]
(嵌套列表的顺序是随机的)

我希望达到的目标是:

[[buy, order, bought, purchase, buy, purchased, buy, order, purchases], 
 [opinion, point of view, opinion, belief]]
有人对如何实现这一目标有什么建议吗?
谢谢大家!

您可以使用
inject
执行以下操作:

def input = [['buy', 'order', 'bought', 'purchase'],
             ['opinion', 'point of view'],
             ['opinion', 'belief'],
             ['buy', 'purchased'],
             ['buy', 'order', 'purchases']]

input.inject([]) { list, current ->
    list.find { it.intersect(current) }?.addAll(current) ?: list << current
    list
}
def input=[['buy','order','bunded','purchase'],
[“意见”、“观点”],
[“意见”、“信念”],
[‘购买’、‘购买’],
[‘购买’、‘订购’、‘购买’]]
input.inject([]){列表,当前->

list.find{it.intersect(current)}?.addAll(current)?:list当然你尝试过解决这个问题?是的,我尝试过。但是由于我的“解决方案”远没有奏效,我认为如果我发布它们对任何人都没有帮助。谢谢!这有帮助:)@zivuska酷!如果它回答了你的问题,你能接受它作为答案吗?