• Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Iterating the hash map to form combinations

 
Shruthi Babu
Ranch Hand
Posts: 54
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I need to iterate a hashmap and form all possible combinations for example if there are five keys say 1, 2, 3, 4 , 5

I need to form all possible distinct combinations for example (1,2) , (1,3) , (1,2,3) , (2,3,4) etc
Can someone help me with an algorithm for this?
 
marc weber
Sheriff
Posts: 11343
Java Mac Safari
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
What have you tried so far? Can you describe the process in English before trying to code it?

Hint: A HashMap's keySet() method returns a Set of keys.
 
fred rosenberger
lowercase baba
Bartender
Posts: 12196
35
Chrome Java Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Please dont' double post.
 
Shruthi Babu
Ranch Hand
Posts: 54
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I am trying to use the combination rule of "n!/r!(n-r)!" but here is the pbm according to this if I wanted all the combinations for a particular number of pairs eg all two pair values ... eg 1, 2, 3, 4 the outcome would be (1,2) , (2,3) , (3,4) , (1,3) (1,4) , (2,4)

but I need all possible pairs say all 2 pairs, 3 pairs , 4 pairs etc... is it a good way to wrap it with a loop and pass the "r" value for each loop or is there a way to figure this out. Any help is highly appreciated.
 
fred rosenberger
lowercase baba
Bartender
Posts: 12196
35
Chrome Java Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
if the order doesn't matter (i.e. (1,2) is the same as (2,1)), it's pretty simple. count from 0 to 2^(number of elements) - 1. Then, use a bit mask to figure out which to include.

in other words, assuming 3 elements:

[ May 22, 2007: Message edited by: Fred Rosenberger ]
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic