HashSet的自定义实现
package com.cy.collection;import java.util.HashMap;/*** HashSet自定义实现* 是使用hashMap实现的* 可以看一下HashSet的源码,非常简单,就是调用hashMap的实现* @author CY**/ public class HashSet {private HashMap map;private static final Object PRESENT = new Object();public HashSet() {map = new HashMap();}/*** set的不可重复就是利用了hashMap的键对象不可重复* @param o*/public void add(Object o){map.put(o, PRESENT);}public boolean remove(Object o) {return map.remove(o)==PRESENT;}public int size() {return map.size();} }
Test.java测试类:
package com.cy.collection;public class Test {public static void main(String[] args) {HashSet set = new HashSet();set.add("aa");set.add(new String("aa"));set.add("bb");System.out.println(set.size());}//输出:2 }
转载于:https://www.cnblogs.com/tenWood/p/9201592.html
HashSet的自定义实现相关推荐
- HashSet存储自定义类型元素
HashSet存储自定义类型元素 给HashSet中存放自定义类型元素时,需要重写对象中的hashCode和equals方法,建立自己的比较方式,才能保证HashSet集合中的对象唯一 创建自定义类 ...
- HashSet存储自定义对象保证元素唯一性图解原理及代码优化
HashSet存储自定义对象保证元素唯一性图解原理及代码优化 1.原理: * 1.HashSet原理 * 我们使用Set集合都是需要去掉重复元素的, 如果在存储的时候逐个equals()比 ...
- 【java】第二十二节课(HashSet)
1.使用HashSet建立对象.添加元素并使用两种方法遍历 代码实现 public class SetDemo {public static void main(String[] args) {Set ...
- java 集合反射_关于granite源码包CollectionUtil集合工具类获取集合反射类型、实例化各种集合类型HashSet/ArrayList等...
一.前言 基于granite源码包org.granite.util.CollectionUtil集合工具类,分别获取集合反射类型java.lang.reflect.Type.实例化newCollect ...
- JAVA Set接口和其常用子类HashSet集合
Set接口,它里面的集合,所存储的元素就是不重复的. HashSet集合,采用哈希表结构存储数据,保证元素唯一性的方式依赖于:hashCode()与equals()方法. 保证HashSet集合元素的 ...
- 面试官:HashSet是如何保证元素不重复的?
作者 | 磊哥 来源 | Java面试真题解析(ID:aimianshi666) 转载请联系授权(微信ID:GG_Stone) 本文已收录<Java常见面试题>系列,开源地址:https: ...
- Java集合 -- HashSet 和 HashMap
HashSet 集合 HashMap 集合 HashSet集合 1.1 Set 接口的特点 Set体系的集合: A:存入集合的顺序和取出集合的顺序不一致 B:没有索引 C:存入集合的元素没有重复 1. ...
- java hashset char_java集合之HashSet
HashSet:位于java.util包下 1 HashSet概述 特点:作为Set集合的一种,首先是无序的,不可重复的:允许存放null值:底层封装HashMap:实现是不同步的,线程不安全: 常用 ...
- 【java笔记】Set接口 (HashSet集合,LinkedSet集合)
Set:不包含重复元素的collection,没有带索引的方法,不能使用for循环变量 实现类: HashSet 哈希表结构(查询速度快),是一个无序的集合 Set<Integer>set ...
- 进阶07 Set接口、HashSet、LinkedHashSet
java.util.Set接口和java.util.List接口一样,同样继承自Collection接口,它与Collection接口中的方法基本一致,并没有对Collection接口进行功能上的扩充 ...
最新文章
- 树莓派开发4-串口通讯wiringpi库
- at指令 fpga_FPGA毕设系列 | 无线通信
- python爬取贴吧所有帖子-Python爬虫爬取百度贴吧的帖子
- 浅谈对Fragment的认识
- 一篇文章带你飞,轻松弄懂 CDN 技术原理
- 含代码 | 支付宝如何优化移动端深度学习引擎?
- python使用repeat、cycle重复打印字符串
- 压缩数据库扩展名为.ldf的日志文件
- 文本比较/文本对比在线工具
- 九宫格拼图C++源码(以面向对象的思想实现,可以输入8及8以下的任意行列数的九宫格拼图游戏)
- WTL自绘界面库(QsImageMgrCtrlBase)
- python量化股票源码_使用Python写一个量化股票提醒系统
- 桌越科技关于程序员和软件开发
- 【它来了】搭载龙芯3A4000的国产办公电脑-桌面型机箱来了~
- Windows CMD 访问UCN路径
- 扫描识别工具Dynamic Web TWAIN使用教程:移动浏览器捕获(上)
- jQuery与JavaScript 页面加载事件
- numpy的文件存储.npy .npz 文件详解
- 【Java】虚拟机JVM
- 虚拟机使用NAT模式搭建网络成功ping 通网络
热门文章
- spring源码:BeanFactoryPostProcessor和BeanDefinitionRegistryPostProcessor的区别
- SpringMVC防止表单重复提交
- springboot整合rabbitmq之延时队列
- (String)、toString()、String.valueOf区别
- 同一域内部署多台notes server
- 《UNIXLinux程序设计教程》一1.3 UNIX基本概念
- rsync内网服务器 推送和拉取公网代码配置
- Unity3D shader简介
- 一个分组查询的SQL 常用算法(附源码可直接执行)
- Ajax学习笔记-get请求参数-3