首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java相关 >

JAVA,求两个集合的差集,该如何解决

2013-11-14 
JAVA,求两个集合的差集import java.util.HashSetimport java.util.Iteratorimport java.util.Setpublic

JAVA,求两个集合的差集
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

public class Test2 {

/**
 * @param args
 */
public static void main(String[] args) {
Set set = new HashSet();
Set set1 = new HashSet();
set.add("sanny");
set.add("mary");
set.add("bill");
set.add("tom");
set.add("tony");
set.add("mark");
set.add("smith");
set.add("anny");

set1.add("smith");
set1.add("tom");
set1.add("tony");
set1.add("mark");

int flag = 1;
Iterator it = set.iterator();
Iterator it1 = set1.iterator();


while (it.hasNext()) {
flag = 1;
String obj = (String) it.next();
while (it1.hasNext()) {
String obj1 = (String) it1.next();
if (obj.equals("sanny")) {
flag = 0;
System.out.println(obj);
}
}
if (flag == 1) {
System.out.println(obj);
}
}

}
}

这是求两个集合的差集,请教各位大神哪里错了?如果用map存呢?应该怎么写呢? iterator Set
[解决办法]
帮你改好了,错已经写在注释里面了。
睡觉了。。


public class Test {

/**
 * @param args
 */
public static void main(String[] args) {
Set set = new HashSet();
Set set1 = new HashSet();
set.add("sanny");
set.add("mary");
set.add("bill");
set.add("tom");
set.add("tony");
set.add("mark");
set.add("smith");
set.add("anny");

set1.add("smith");
set1.add("tom");
set1.add("tony");
set1.add("mark");

int flag = 1;
Iterator it = set.iterator();
Iterator it1 = set1.iterator();

//首先不能用it.hasNext来遍历啊,这东西就只会跑一遍的。
//while (it.hasNext()) {
//String obj = (String) it.next();
//while (it1.hasNext()) {
//String obj1 = (String) it1.next();
//if (obj.equals(obj1)) {//你这里写死了呗。。。哪能一直一个名啊。
//System.out.println(obj);
//}
//}
//
//}

for(Object name:set){
for(Object name1:set1){
if(name.toString().equals(name1.toString())){
System.out.println(name1);
}
}
}


}
}

[解决办法]

        Set set = new HashSet();
        Set set1 = new HashSet();
        set.add("sanny");
        set.add("mary");
        set.add("bill");
        set.add("tom");
        set.add("tony");
        set.add("mark");
        set.add("smith");
        set.add("anny");

        set1.add("smith");
        set1.add("tom");
        set1.add("tony");
        set1.add("mark");

        set.removeAll(set1);
        for (Object o : set) {
            System.out.println(o.toString());
        }

[解决办法]

set.removeAll(set1);

热点排行