java 集合 Set

来源:互联网 发布:智慧足迹数据 编辑:程序博客网 时间:2024/06/05 14:12

Set集合里面的多个对象没有明显顺序。Set不允许有重复元素。

当试图把两个相同的对象()加入一个Set中时,对象会调用equals方法比较两个对象元素是否相同,相同则不会加入。

下面是几种遍历方法,以及set中调用实例

//Java中Set集合是一个不包含重复元素的Collection//也就是,set 不包含满足 e1.equals(e2) 的元素对 e1 和 e2import java.util.HashSet;  import java.util.Iterator;  import java.util.Set;  public class SetTest2 {        public static void main(String[] args)     {          Set<String> set = new HashSet<String>();          set.add("a");          set.add("b");          set.add("c");          set.add("d");          set.add("e");          System.out.println("set="+set);        boolean flag=set.add("e");//不能放入重复数据          System.out.println("\"e\"能放入set集合中?:"+flag);        //迭代遍历:while循环实现        //获取Set集合的迭代器        System.out.println("while循环迭代遍历---------------------");        System.out.print("set={");        Iterator<String> iterator=set.iterator();        while(iterator.hasNext())        {        //取出集合元素        String next=iterator.next();        System.out.print(next+" ");        }System.out.print("}\n");        System.out.println("for循环迭代遍历---------------------");        //迭代遍历: for循环实现,跟while循环差不多        System.out.print("set={");        for(Iterator<String> it=set.iterator();it.hasNext();)        {        String next=it.next();        System.out.print(next+" ");        }System.out.print("}\n");                System.out.println("foreach遍历---------------------");          //foreach遍历        System.out.print("set={");        for(String value : set){              System.out.print(value+" ");          }System.out.print("}\n");        //其他功能小测        //查询元素        System.out.println(set.contains("a"));//true        Set<String> set2 = new HashSet<String>();        set2.add("f");        set2.add("g");        //求并集:        System.out.println("set="+set);        set.addAll(set2);        System.out.println("set2="+set2);        System.out.println("set="+set);        //判断连个集合是否相等:1,元素个相同,2,值相同        /*比较指定对象与此 set 的相等性。         * 如果指定的对象也是一个 set,两个 set 的大小相同,         * 并且指定 set 的所有成员都包含在此 set 中         * (或者,此 set 的所有成员都包含在指定的 set 中也一样),         * 则返回 true。此定义确保了 equals 方法可在不同的 set 接口实现间正常工作。         */        Set<String> set3 = new HashSet<String>();        set3.addAll(set2);        System.out.println(set3.equals(set2));//true        set3.add("1");        System.out.println(set3.equals(set2));//false        //置空        set3.clear();        //判空        System.out.println(set3.isEmpty());//true        set3.addAll(set2);        //移除某个元素        System.out.println("set3="+set3);//set3=[f, g]        System.out.println(set3.remove("f"));//true        System.out.println(set3.remove(2));//flase        System.out.println("set3="+set3);//set3=[g]        set3.add("new");        //全部移除set2中的元素        System.out.println("set3="+set3);//set3=[new, g]        set3.removeAll(set2);        System.out.println("set3="+set3);//set3=[new]                set3.addAll(set2);        System.out.println("set3="+set3);//set3=[new, f, g]        //set3中值保留set2中的元素        set3.retainAll(set2);        System.out.println("set3="+set3);//set3=[f, g]        //返回数组:Object类型数组        Object[] objects=set3.toArray();        System.out.print("objects={");        for (Object object : objects) {System.out.print(object+" ");}System.out.print("}\n");//返回指定类型数组 String[] strings=set3.toArray(new String[0]);System.out.print("strings={");for (String string : strings) {System.out.print(string+" ");}System.out.print("}\n");//返回容量:System.out.println("set3中元素的个数为"+set3.size());//2    }  }  

结果:

set=[a, b, c, d, e]
"e"能放入set集合中?:false
while循环迭代遍历---------------------
set={a b c d e }
for循环迭代遍历---------------------
set={a b c d e }
foreach遍历---------------------
set={a b c d e }
true
set=[a, b, c, d, e]
set2=[f, g]
set=[a, b, c, d, e, f, g]
true
false
true
set3=[f, g]
true
false
set3=[g]
set3=[new, g]
set3=[new]
set3=[new, f, g]
set3=[f, g]
objects={f g }
strings={f g }
set3中元素的个数为2



原创粉丝点击