我最近有这个问题。 这是我的代码如何过滤一个列表中的列表?
for(int i=1; i<=repeticiones;i++){
posiblesComunes.removeIf(p->!periodos.get(i).contains(p));
}
periodos是List(Set(String))
,posiblesComunes是Set(String)
我需要做的就是只有在所有的设置(字符串)在periodos的字符串。 我试图做的是使用的,但我得到了一个消息:
我在一个封闭的范围内定义的局部变量必须是最后的或有效的最终
有没有什么办法来解决这个问题?或者另一种方式来获得这些元素? 谢谢!
编辑: 只是一个例子
periodos = {("1-1-16","6-12-16"),("1-1-16","2-8-15"),("3-7-08","1-1-16")}
我需要得到的是“1-1-16”的一个共同点。
EDIT2:
periodosComunes的范例(for循环):
periodosComunes = ("1-1-16","6-2-16")
而不是指定的集合类型,它会更有助于提供它们的定义。 –
你可以使用一个临时变量:'final int _i = i;' – shmosel
或者你可以做'periodos.forEach(posiblesComunes :: retainAll);' – shmosel