JAVA编程:Set集合和HashSet的区别和用法
https://www.flypeng.com win10系统 发布时间:2023-04-20 10:29 来源:未知
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");
		}
		
		
	}

}
如果你有好的win10资讯或者win10教程,以及win10相关的问题想要获得win10系统下载的关注与报道。
欢迎加入发送邮件到#qq.com(#替换为@)。期待你的好消息!