我想知道如何計算給定數組列表中的所有可能組合? E.g找出arraylist中所有可能的組合:java
ArrayList包含以下元素{1, 2, 3}
。現在下面的組合應該產生
{1}, {2}, {3}, {1,2}, {1,3}, {2,3}, {1,2,3}
我想知道如何計算給定數組列表中的所有可能組合? E.g找出arraylist中所有可能的組合:java
ArrayList包含以下元素{1, 2, 3}
。現在下面的組合應該產生
{1}, {2}, {3}, {1,2}, {1,3}, {2,3}, {1,2,3}
你可以嘗試Guava的Sets#powerSet
Sets.powerSet(Sets.newHashSet(<your list>))
你可以看到在數組列表中的每個元素作爲一個位並實現二進制計數器。伯爵給你所有的集合。你有1,2,3在arraylist,讓我們可以看到他們3位一段時間。 000,001,010,011,100,101,110,111給你設定的功率。所有你需要的是實現一個二進制計數器,這是微不足道的。
我喜歡這一款。你絕對應該得到你的第一個贊成票 – keyser
{}是組合之一嗎? – dansalmo
[計算一組數字的所有子集]的可能重複(http://stackoverflow.com/questions/4640034/calculating-all-of-the-subsets-of-a-set-of-numbers) – Joel
使用單詞_set_,_ [power set](http://en.wikipedia.org/wiki/Power_set)_和_all subsets_可以找到更多的運氣。列表的所有排列都是其元素的所有可能的排列。並且請注意,功率集合將包括空集。 [Here's](http://rosettacode.org/wiki/Power%5FSet#Java)如果你想自己實現一些Java代碼。 – keyser