日期:2014-05-20 浏览次数:21094 次
import java.util.*;
public class AboutSet {
    public AboutSet(){
        List<String> list=new ArrayList<String>();
        list.add("2");
        list.add("3");
        list.add("4");
                
        Set<String>  set=new HashSet<String>();
        set.add("2");
        set.add("3");
        set.add("4");
        
        set.addAll(list);
        set.removeAll(list);
        
        Iterator<String> iterator=set.iterator();
        while(iterator.hasNext())
            System.out.println(iterator.next());
            }
    public static void main(String[] args) {
        new AboutSet();
    }
}
public class AboutSet {
    public AboutSet() {
        List<String> list = new ArrayList<String>();
        list.add("2");
        list.add("3");
        list.add("4");
        Set<String> set = new HashSet<String>();
        set.add("2");
        set.add("3");
        set.add("4");
        System.out.println(set.addAll(list));
        System.out.println(set.add("5"));
        System.out.println(set.add("4"));
        set.removeAll(list);
        Iterator<String> iterator = set.iterator();
        while (iterator.hasNext())
            System.out.println(iterator.next());
    }
    public static void main(String[] args) {
        new AboutSet();
    }
}
------解决方案--------------------
boolean addAll(Collection<? extends E> c)
如果 set 中没有指定 collection 中的所有元素,则将其添加到此 set 中.
所以
set.addAll(list);这一句返回false!也就是说set没有改变。里面没有加进去元素
boolean removeAll(Collection<?> c)
移除 set 中那些包含在指定 collection 中的元素
list中有set里面仅有的元素:“2”、“3”、“4”,删除之后就空了。
如果set中还有一个元素“5”,则会把“5”输出。
如果list中没有元素“2”,则会把“2”输出!