Как перебрать Hashmap и создать комбинации с другими ключами в том же Hashmap, чтобы сравнить их объекты
Map<String, Batch> map = new LinkedHashMap<String, Batch>();
map.put(A,batch1);
map.put(B,batch2);
map.put(C,batch3);
map.put(D,batch4);
Мое требование состоит в том, чтобы выполнить итерацию вышеупомянутой хэш-карты и создать комбинации с другими ключами в той же самой хэш-карте и сравнить их объекты, комбинации, упомянутые ниже.
AB, AC, AD, ABC, ABD, ACD, ABCD,
BC, BD, BCD,
CD
Я попробовал следующий подход, но я могу получить комбинации для двух наборов предметов (AB, AC, AD, BC, BD и CD)
создан дубликат хеш-карты с одинаковыми значениями
Map mapDuplicate = new LinkedHashMap ();
for (String item : map.keySet()){
for (String item2 : mapDuplicate.keySet()){
if(item != item2){
compare batches and do stuff...............
}
}
mapDuplicate.remove(item);
}
Пожалуйста, предложите лучшее решение / алгоритм / ссылку для обработки вышеуказанного сценария?