package setdemo; import java.util.HashSet; import java.util.Iterator; import java.util.Set; /* * 本类讲解Set集合和HashSet的基本用法 */ public class EasyDemo { public static void main(String[] args) { //Set集合与Collection集合类似 唯一不同的地方就是 Set集合中不允许存在重复对象(或重复元素) //如果视图把两个相同的元素加入到Set集合中则会添加失败,返回false,并且元素不会被添加 //由于Set集合时一个接口 所以不能直接实例化 需要用其子类来进行实例化 //这个地方我们就用其子类HashSet进行实例化 Set objs = new HashSet(); //给objs集合添加一个字符串对象 objs.add("Java案例"); objs.add("C#案例"); objs.add("Js案例"); objs.add("CSS案例"); System.out.println("objs的值为:"+objs+"\n"); //用迭代器遍历集合 System.out.println("---------下列是迭代器遍历集合----------"); Iterator it = objs.iterator(); while(it.hasNext()) { System.out.print(it.next().toString()+"\t"); } System.out.println(); //现在呢试图再添加一个Java案例 objs.add("Java案例"); //那么这个地方可以看到 虽然执行了add语句 但是最后输出的值还是原来的值 //这就说明没有添加进去 也说明了在Set集合中不能存在相同的值 System.out.println("\n添加objs之后的值为:"+objs+"\n"); //contains方法判断是否包含指定的元素 返回true或者false System.out.println("objs集合中是否包含html案例字符串:"+objs.contains("html案例")+"\n"); //addAll方法:查看集合中是否包含有另一个集合的所有元素,有则添加 Set objs1 = new HashSet(); objs1.add("案例11111"); objs1.add("C#案例"); objs.addAll(objs1); //在这个地方可以看到addAll把原来objs集合中没有的案例11111添加进去了 而C#案例原来有的则没有添加 System.out.println("addAll之后的objs集合中的值:"+objs+"\n"); //containsAll方法:判断objs集合中是否包含另一个集合的所有元素 有返回true没有返回false Set objs2 = new HashSet(); objs2.add("C#案例"); objs2.add("Js案例"); System.out.println("objs集合是否包含了objs集合中的所有元素:"+objs.containsAll(objs2)+"\n"); //获取集合的元素个数size System.out.println("objs集合中的元素个数为:"+objs.size()+"\n"); //remove方法 移除集合中指定的元素 objs.remove("案例11111"); System.out.println("objs移除案例11111之后的长度为:"+objs.size()+"\n"); //removeAll(Conllection)移除包含在参数集合中的所有元素 objs.removeAll(objs1); System.out.println("objs移除子集合objs1之后的 值为:"+objs+"\n"); //toArray()方法 将集合转换为Object类型的数组 Object[] array = objs.toArray(); //那么数组就不能直接输出了 因为它没有重写toString()方法 需要遍历输出 System.out.println("------------转换成数组之后遍历的值为---------"); for(Object a : array) { System.out.print(a.toString()+"\t"); } } }