我是新来的Java和我试图(和 - apparently-失败),如果他们有共同的要素两个字符串组结合:如何在Java中合并两个字符串集合,但前提是它们具有相同的元素?
CommonElements = Set1;
CommonElements.retainAll(Set2);
System.out.println("common elements of"+Set1+"and"+Set2+":"+CommonElements);
if (CommonElements.size()!=0) {
Set1.addAll(Set2);
System.out.println("both sets"+Set1);
}
现在,我正在申请同样的事情,虽然我现在有套一个ArrayList:
for (i=0; i<myList.size(); i++) {
for (int j = 1; j<myList.size()-i; j++) {
Set<String> Set1 = myList.get(i);
System.out.println("Set1"+Set1);
Set<String> Set2 = myList.get(i+j);
System.out.println("Set2"+Set2);
Set<String> commonElements = myList.get(i);
commonElements.retainAll(Set2);
System.out.println("Common elements of"+i+"and"+(i+j)+":"+Set3);
if (commonElements.size()!=0) {
Set1.addAll(Set2);
myList.set(i, Set1);
System.out.println("both sets"+Set1);
}
System.out.println(myList.get(i));
不过的System.out.println(myList.get(I))结果:
如果这两组没有什么共同点: SET1变空, myList.get(i)返回[]。
如果两组确实有共同之处: Set1变为Set2,所以列表条目编号i取列表条目编号i + j的值。
这是因为'retainAll'你'myList.get调用(我)'修改的列表。除非你告诉它,否则你认识到'Object'的变量赋值不会复制? – bcsb1001
@Dichard:我想要一个工会,但我首先要检查是否有交叉点,因为我不想要交叉点(两个集合加在一起)或交叉点(只存在于两个元素中) – Richard
@ Richard:如果它们没有至少一个共同的元素,则要合并这些集合。 – Wiesel