我有一个像下面的HashMap
{ HHsize=[HHSize4+, HHSize1, HHSize2, HHSize3],
AOB=[AOB<30, AOB30_50, AOB60Plus, AOB50_60],
Asp=[Asp=N, Asp=Y]}
我需要生成值对的所有可能组合。作为笛卡尔积,例如。
[[HHSize4+,AOB<30,Asp=N],
[HHSize4+,AOB<30,Asp=Y],
[HHSize4+,AOB30_50,Asp=N],
[HHSize4+,AOB30_50,Asp=Y],
等等。
我们怎么能这样做?
答案 0 :(得分:1)
使用番石榴Sets
:
List<Set<String>> values = map.values()
.stream()
.map(HashSet::new) // to set
.collect(Collectors.toList());
Set<List<String>> = Sets.cartesianProduct(values);