当前位置: 首页 > article >正文

【JAVA 基础 第(18)课】HashSet 使用方法详解

HashSet:Set 接口的实现类,存放无序的,不可重复的元素


判断是否为重复的对象

  1. 比较hashCode()方法的返回值,如果不同,判定为不同的对象,如果相同,执行第二步
  2. 判断equals()方法的返回值,如果为true,则判为相同的对象,如果为false,则为不同的对象
public class HashSetTest {
	public static void main(String[] args) {

		//创建一个空的集
		HashSet hs = new HashSet();

		//增加
		hs.add("hello");		//如果集中不存在该元素,则添加该元素
		hs.add(new String("hello"));  //重复的元素(依据equals比较)无法添加
		hs.add(123);
		hs.add(null);
		hs.add(new Object());

		Object obj = new Object();
		hs.add(obj);
		hs.add(true);
		
		//添加学生
		hs.add(new Student(1001,"张三"));
		hs.add(new Student(1001,"张三"));   //重复的对象,通过重写了类中的hashCode()和equals()
		
		//删除
		hs.remove("hello");		//删除指定的元素
		hs.remove(obj); 
		
		//遍历的两种方式
		System.out.println("--简洁for循环--");
		for(Object o:hs){
			System.out.println(o);
		}
		
		System.out.println("--集合专用的迭代器--");
		Iterator it = hs.iterator();
		while(it.hasNext()){
			Object o = it.next();
			System.out.println(o);
			it.remove();              //删除迭代出来的元素必须通过迭代器的方法			
		}		
		
		//测试是否为空
		System.out.println("集是否空?"+hs.isEmpty());
		//输出集
		System.out.println(hs); 
		
	}
}


http://www.kler.cn/a/503118.html

相关文章:

  • C++ STL之容器介绍(vector、list、set、map)
  • 使用 configparser 读取 INI 配置文件
  • html中鼠标位置信息
  • Java-数据结构-栈与队列(常考面试题与单调栈)
  • P10打卡——pytorch实现车牌识别
  • 2_CSS3 背景 --[CSS3 进阶之路]
  • 重回C语言之老兵重装上阵(一)vscode编译.C文件
  • 2024年华为OD机试真题-判断一组不等式是否满足约束并输出最大差-Python-OD统一考试(E卷)
  • PowerBuilder中调用Excel OLE对象的方法
  • 【Ubuntu与Linux操作系统:十、C/C++编程】
  • 前端开发:CSS背景属性
  • 内网穿透的应用-Ubuntu本地Docker部署Leantime项目管理工具随时随地在线管理项目
  • 集成工作流的后台管理系统,springboot集成activiti,Java集成工作流审批流,vue后台管理系统(源码)
  • java项目启动时,执行某方法
  • nacos环境搭建以及SpringCloudAlibaba脚手架启动环境映射开发程序
  • 对React的高阶组件的理解?应用场景?
  • 农业4.0背后的智慧引擎:机器学习助力精准农事决策
  • 版本控制器Git:时间机器与备份系统
  • ASP.NET Core与GraphQL集成
  • Excel数据叠加生成新DataFrame:操作指南与案例
  • ubuntu22.4 ROS2 安装gazebo(环境变量配置)
  • Jira用例自动去除summary重复用例
  • Android 概述
  • [OPEN SQL] 限定选择行数
  • 学习记录-责任链模式验证参数
  • opencv进行人脸识别环境搭建