一:引言

HashSet类继承于 Set接口 其方法均可被直接调用,不用手写,本篇敲的码是为了熟悉底层原理,HashMap的特点:无序,无重复。其底层用的也是map<key,value>容器,但其value值固定,所以在HashSet当中存储key值时,不可重复。

二:上码

package cn.wyj.two;import java.util.HashMap;
import java.util.Map;public class Demo8_手写HashSet {Map map;public static final Object VALUE = new Object();public Demo8_手写HashSet(){map = new HashMap();}public int size(){return map.size();}public void add(Object obj){map.put(obj,VALUE);}@Overridepublic String toString() {// TODO Auto-generated method stubStringBuilder sb = new StringBuilder();sb.append("[");for(Object temp:map.keySet()){sb.append(temp+",");}sb.setCharAt(sb.length() - 1, ']');return sb.toString();
}public static void main(String[] args) {Demo8_手写HashSet set = new Demo8_手写HashSet();set.add("aa");set.add("bb");set.add("cc");set.add("cc");//测试重复元素System.out.println(set);}
}

Java手写HashSet相关推荐

  1. Java手写线程池-第一代(原创)

    个人简介 作者是一个来自河源的大三在校生,以下笔记都是作者自学之路的一些浅薄经验,如有错误请指正,将来会不断的完善笔记,帮助更多的Java爱好者入门. 文章目录 个人简介 Java手写线程池(第一代) ...

  2. java 手写 jvm高性能缓存

    java 手写 jvm高性能缓存,键值对存储,队列存储,存储超时设置 缓存接口 1 package com.ws.commons.cache; 2 3 import java.util.functio ...

  3. Java 手写一个SQL分页

    Java手写一个类似PageHelper的分页SQL 目前分页插件众所周知的莫过于和mybatis完美融合的PageHelper了,简单两行代码就实现了sql分页,配合PageInfo类,将数据总数量 ...

  4. Java 手写签字去除背景 背景透明

    Java 手写签字去除背景 背景透明 /*** 白底照片去除白底 形成透明底图片* @param file 需要去除背景的图片* @param Path 去除背景后保存图片的路径* @return t ...

  5. java手写实现BST

    难易程度:★★★ 重要性:★★★★★ 今日头条的面试中有过要求:手写实现BST import java.util.*;public class MyBSTImpl {// BST中的节点TreeNod ...

  6. 纯jsp实现评论功能_自己实现的java手写tomcat

    这是一个java写的模拟tomcat工作原理的demo,是一个极简的tomcat服务器,也是我们培训班(邦邦IT教育)的讲义,是整个j2ee培训的精髓,理解了这个demo其实后面的很多东西都是可以自学 ...

  7. Java手写Hashmap(HashMap的基本用法)

    一:引言 HashMap是Map的实现类,其方法都可以继承Map,不用手写,本篇只是为了了解底层代码和复习java基础敲得码 二:上码 package cn.wyj.two;public class ...

  8. JAVA手写ArrayList以及LinkedList

    手写记录一下~ 顶级接口List public interface List<E> {//返回线性表的大小public int getSize();//判断线性表中是否为空public b ...

  9. 高级JAVA - 手写简单的重试组件学习Spring Retry

    目录 一 . 定义注解 二 . 利用cglib代理扩展重试业务 三 . 编写代理类 , 使用自定义的XRetryInterceptor作为拦截器 四 . 编写相关业务方法 , 测试代码 五 . 测试结 ...

最新文章

  1. 关于CSDN不给任何通知强制关闭我的6年博客,我深表痛心
  2. 图分区技术基本概念【1】
  3. K8S部署工具:KubeOperator集群规划-自动模式
  4. 场景感知:CNN方法对三维重建/slam/实时定位的一些Base改进
  5. conditional_如何:在Spring中使用@Conditional和Condition注册组件
  6. python自动登录校园网_免费自动登录国科大校园网python脚本
  7. matlab中now函数_now()方法以及JavaScript中的示例
  8. python携程gevent_Python协程介绍以及优缺点 Greentlet和Gevent的使用
  9. IEEE754标准浮点格式
  10. oracle授权with,Oracle With 语句语法及示例
  11. 电商API,获得淘宝商品类目
  12. 14届数独-真题标准数独-Day 3-20220118
  13. 一键分析你的上网行为, 看看你平时上网都在干嘛?
  14. 终于知道为啥网页不让我复制粘贴了!
  15. 局部语义地图构建——HDMapNet
  16. AtCoder - agc005_b(单调栈)
  17. android studio文件名颜色分别表示含义
  18. GCN - Semi-Supervised Classification with Graph Convolutional Networks 用图卷积进行半监督节点分类 ICLR 2017
  19. 理解np.max、np.min、np.argmax、np.argmin以及np.sum中的axis参数
  20. Snapman设计中的思考

热门文章

  1. android蓝牙多次后,android – 如何防止BluetoothGattCallback一次多次执行
  2. 【ArcGIS微课1000例】0014:ArcGIS中如何将kml(kmz)文件转shp,并进行投影转换?
  3. 【数据库原理及应用】经典题库附答案(14章全)——第四章:关系系统及其优化
  4. 【地理建模】现代地理学中的数学方法:主成分分析法案例详解
  5. NetBeans安装提示neatbeans cannot find java 1.8 or higher
  6. C和指针之IO流和缓冲区
  7. linux c之main(int argc, char *argv[], char *envp[])参数意义
  8. Android插件化开发基础之App如何动态加载类
  9. python商用_python实现sm2和sm4国密(国家商用密码)算法的示例
  10. 分子模拟软件amber_容天AMBER优化的GPU解决方案