我最近有這個問題。 這是我的代碼如何過濾一個列表中的列表?
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