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!!!
  • 相关阅读:
    (六)静态域,静态方法和静态代码块
    (五)final修饰符
    (四)函数的参数传递——值传递
    (三)java字符串
    第二章 shell的语法
    字符串操作
    PropertyGrid—属性类别排序
    PropertyGrid—为复杂属性提供下拉式编辑框和弹出式编辑框
    PropertyGrid--为复杂属性提供编辑功能
    PropertyGrid—添加EventTab
  • 原文地址:https://www.cnblogs.com/JunkingBoy/p/14723393.html
Copyright © 2011-2022 走看看