zoukankan      html  css  js  c++  java
  • 4.30Java 手动敲简易的HashSet

    4.30Java 手动敲简易的HashSet

    先确定HashSet当中要拥有的方法和属性

    • add方法

    • size方法

    传入的对象直接作为HashSet里面的HashMap的key值

    属性包括:

    • HashMap

    • 固定的一个常量值

    定义一个HashSet类:

    package collection.set;

    import java.util.HashMap;

    /**
    * 手动实现一个简单的HashSet,理解HashSet底层原理
    * @author Lucifer
    */
    public class RealizeHashSet {

       /*因为HashSet底层原理核心就是一个HashMap对象,所以先定义一个HashMap*/
       HashMap map;

       //定义一个固定的产量作为value值
       public static final  Object PRESENT = new Object();

       /*构造器*/
       public RealizeHashSet(){

           //在这里直接当以Map对象
           map = new HashMap();
      }

       /*获得里面的内容---直接然会map的size*/
       public int size(){

           //直接返回map的size方法---这里不是RealizeHashSet的size方法
           return map.size();
      }

       /*调用add方法*/
       public void add(Object o){

           //返回值
           //传入的对象作为key,一个常量作为固定的value值
           map.put(o,PRESENT);
      }

       /*重写toString方法*/
       @Override
       public String toString(){

           //返回一个字符串---StringBuilder类下的方法
           StringBuilder sb = new StringBuilder();
           //添加头符号
           sb.append("[");

           //打印遍历里面所有的key---增强for循环
           for (Object key : map.keySet()){
               //循环元素
               sb.append(key + ",");
          }
           //直接返回sb的toString方法
           sb.setCharAt(sb.length() - 1, ']');
           return sb.toString();
      }
    }

    测试类:

    package collection.set;

    /**
    * 测试RealizeHashSet的实现
    * @author Lucifer
    */
    public class Test {
       public static void main(String[] args) {
           //创建类对象
           RealizeHashSet rhs = new RealizeHashSet();

           //调用类里面的方法
           rhs.add("Lucifer");
           rhs.add("Harden");
           rhs.add("JunKingBoy");

           //打印出结果
           System.out.println(rhs);
      }
    }

     

     

    It's a lonely road!!!
  • 相关阅读:
    在Java当中如何优雅地处理临时文件
    lombok插件不建议使用的原因
    linux系统下修改tomcat的端口号时,需要修改的地方
    linux系统下报错为:直接在tomcat的bin目录下生成一个错误文件。
    Linux下修改tomcat端口号
    python实现断点续传下载文件
    Python中下划线---完全解读
    linux  指令 备注
    Linux下高并发socket最大连接数所受的各种限制
    python和pywin32实现窗口查找、遍历和点击
  • 原文地址:https://www.cnblogs.com/JunkingBoy/p/14723393.html
Copyright © 2011-2022 走看看