我在一个hashmap中有两个Set,我希望在另一个Set中合并那些值:
A, B
例如,我在第一次迭代中的第一个HashSet包含这些值:Set<String> elementValues1 = new HashSet<String>();
elementValues1.add("A");
elementValues1.add("B");
。
喜欢:
C, D
和我在第二次迭代中的第二个Set包含:Set<String> elementValues2 = new HashSet<String>();
elementValues2.add("C");
elementValues2.add("D");
。
喜欢:
Set<String> elementValues3 = new HashSet<String>();
我想在循环中创建另一个组合两个Set的值: 喜欢:
elementValues3
void Reset()
{
parentAttribute = newValue ;
}
应包含:
A-C
广告
公元前
B-d
有人可以帮我解决这个问题,提前谢谢
答案 0 :(得分:5)
如果您真的想要使用 - 分隔符的String对,只需循环两个集合并将合并后的值添加到第三个:
Set<String> elementValues3 = new HashSet<String>();
for (String s1: elementValues1) {
for (String s2: elementValues2) {
elementValues3.add(s1 + "-" + s2);
}
}
所得到的结果将是:
[A-C,A-D,B-C,B-D]
答案 1 :(得分:5)
Set<String> newSet
= elementValues1.stream()
.flatMap(a -> elementValues2.stream()
.map(b -> a + '-' + b))
.collect(Collectors.toSet());