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的自定义实现相关推荐

  1. HashSet存储自定义类型元素

    HashSet存储自定义类型元素 给HashSet中存放自定义类型元素时,需要重写对象中的hashCode和equals方法,建立自己的比较方式,才能保证HashSet集合中的对象唯一 创建自定义类 ...

  2. HashSet存储自定义对象保证元素唯一性图解原理及代码优化

    HashSet存储自定义对象保证元素唯一性图解原理及代码优化 1.原理: * 1.HashSet原理       * 我们使用Set集合都是需要去掉重复元素的, 如果在存储的时候逐个equals()比 ...

  3. 【java】第二十二节课(HashSet)

    1.使用HashSet建立对象.添加元素并使用两种方法遍历 代码实现 public class SetDemo {public static void main(String[] args) {Set ...

  4. java 集合反射_关于granite源码包CollectionUtil集合工具类获取集合反射类型、实例化各种集合类型HashSet/ArrayList等...

    一.前言 基于granite源码包org.granite.util.CollectionUtil集合工具类,分别获取集合反射类型java.lang.reflect.Type.实例化newCollect ...

  5. JAVA Set接口和其常用子类HashSet集合

    Set接口,它里面的集合,所存储的元素就是不重复的. HashSet集合,采用哈希表结构存储数据,保证元素唯一性的方式依赖于:hashCode()与equals()方法. 保证HashSet集合元素的 ...

  6. 面试官:HashSet是如何保证元素不重复的?

    作者 | 磊哥 来源 | Java面试真题解析(ID:aimianshi666) 转载请联系授权(微信ID:GG_Stone) 本文已收录<Java常见面试题>系列,开源地址:https: ...

  7. Java集合 -- HashSet 和 HashMap

    HashSet 集合 HashMap 集合 HashSet集合 1.1 Set 接口的特点 Set体系的集合: A:存入集合的顺序和取出集合的顺序不一致 B:没有索引 C:存入集合的元素没有重复 1. ...

  8. java hashset char_java集合之HashSet

    HashSet:位于java.util包下 1 HashSet概述 特点:作为Set集合的一种,首先是无序的,不可重复的:允许存放null值:底层封装HashMap:实现是不同步的,线程不安全: 常用 ...

  9. 【java笔记】Set接口 (HashSet集合,LinkedSet集合)

    Set:不包含重复元素的collection,没有带索引的方法,不能使用for循环变量 实现类: HashSet 哈希表结构(查询速度快),是一个无序的集合 Set<Integer>set ...

  10. 进阶07 Set接口、HashSet、LinkedHashSet

    java.util.Set接口和java.util.List接口一样,同样继承自Collection接口,它与Collection接口中的方法基本一致,并没有对Collection接口进行功能上的扩充 ...

最新文章

  1. 树莓派开发4-串口通讯wiringpi库
  2. at指令 fpga_FPGA毕设系列 | 无线通信
  3. python爬取贴吧所有帖子-Python爬虫爬取百度贴吧的帖子
  4. 浅谈对Fragment的认识
  5. 一篇文章带你飞,轻松弄懂 CDN 技术原理
  6. 含代码 | 支付宝如何优化移动端深度学习引擎?
  7. python使用repeat、cycle重复打印字符串
  8. 压缩数据库扩展名为.ldf的日志文件
  9. 文本比较/文本对比在线工具
  10. 九宫格拼图C++源码(以面向对象的思想实现,可以输入8及8以下的任意行列数的九宫格拼图游戏)
  11. WTL自绘界面库(QsImageMgrCtrlBase)
  12. python量化股票源码_使用Python写一个量化股票提醒系统
  13. 桌越科技关于程序员和软件开发
  14. 【它来了】搭载龙芯3A4000的国产办公电脑-桌面型机箱来了~
  15. Windows CMD 访问UCN路径
  16. 扫描识别工具Dynamic Web TWAIN使用教程:移动浏览器捕获(上)
  17. jQuery与JavaScript 页面加载事件
  18. numpy的文件存储.npy .npz 文件详解
  19. 【Java】虚拟机JVM
  20. 虚拟机使用NAT模式搭建网络成功ping 通网络

热门文章

  1. spring源码:BeanFactoryPostProcessor和BeanDefinitionRegistryPostProcessor的区别
  2. SpringMVC防止表单重复提交
  3. springboot整合rabbitmq之延时队列
  4. (String)、toString()、String.valueOf区别
  5. 同一域内部署多台notes server
  6. 《UNIXLinux程序设计教程》一1.3 UNIX基本概念
  7. rsync内网服务器 推送和拉取公网代码配置
  8. Unity3D shader简介
  9. 一个分组查询的SQL 常用算法(附源码可直接执行)
  10. Ajax学习笔记-get请求参数-3