這是發佈here但在Java中的相同問題,因爲在C#中,yield會解決我的問題。如何獲得每一個無序的元素對,而不用重複從兩個列表中懶得?
例如:如果有[1,2] [5,6]。我想得到[1,5] [1,6] [2,5] [2,6]
但是,如果我只有一個列表[1,2,3],結果將是[1, 2] [1,3] [2,3]
這是我有:
public static <T,K> Collection<Entry<T,K>> Pairs (List<T> l1, List<K> l2)
{
Collection<Entry<T,K>> result = new LinkedList<>();
for(int i =0;i<l1.size();i++)
{
for(int j=(l1==l2?i+1:0);j<l2.size();j++)
{
result.add(new Entry<>(l1.get(i),l2.get(j)));
}
}
return result;
}
我只是想方法懶惰。有任何想法嗎?
這不是容易地創建一個懶惰'Collection'。 Iterable或Iterator足夠嗎? – shmosel
@shmosel這就是我正在尋找的。 –