package cn.study.lu.four;

import java.util.*;

/**
* 手工实现hashmap,加深理解底层原理
* @author Administrator
*
*/
public class MyHashSet {
HashMap map;
private static final Object PRESENT = new Object();

public MyHashSet() {
map = new HashMap();
}

public void put(Object o) {
map.put(o, PRESENT);
}

public int size() {
return map.size();
}

@Override
public String toString() {

StringBuilder sb = new StringBuilder();
sb.append("[");

for(Object key: map.keySet()) {
sb.append(key+",");
}

sb.setCharAt(sb.length()-1,']');

return sb.toString();
}

public static void main(String[] args) {
MyHashSet set = new MyHashSet();

set.put("aaa");
set.put("bbb");
set.put("ccc");
set.put("ddd");

System.out.println(set);
}
}

最新文章

  1. (转载)android:android.content.res.Resources$NotFoundException: String resource ID #..
  2. Nancy 自定义JsonSerializer
  3. Dean Edwards大神写的addEvent库
  4. editPlus,3.7V 注册码
  5. hiho一下116周 网络流
  6. Android解析Excel文档完整示例
  7. schedule()函数的调用时机(周期性调度)
  8. Android 高仿微信即时聊天 百度云为基础的推
  9. HDInsight-Hadoop现实(两)传感器数据分析
  10. ubuntu软件使用汇总
  11. Node.js 虚拟机
  12. jdbc封装的类
  13. centos7安装mariadb
  14. Perl:undef类型和defined()函数
  15. Mobile First! Wijmo 5 之 架构
  16. Software Engineering homework2
  17. 关于linux中用vi新建立一个.c文件无法保存,显示E212错误的时候
  18. [leetcode]314. Binary Tree Vertical Order Traversal二叉树垂直遍历
  19. mysql09---sql语句优化
  20. Python-argparse-命令行与参数解析

热门文章

  1. jquery.ui.widget.js
  2. vue-element-template模板项目使用记录(持续更新)
  3. 阶段1 语言基础+高级_1-3-Java语言高级_03-常用API第二部分_第5节 StringBuilder类_1_StringBuilder的原理
  4. delphi 静态3维数组。 严重占用堆栈 切记。 应该用动态数组, 非要用静态数组的话, 要在编译器里 把 堆栈 调大
  5. 类TreeMap
  6. 类LinkedHashSet
  7. string与wstring的互相转换接口(Windows版本)
  8. ios-wx.chooseImage选择图片后,在ios中选中的图片未显示
  9. UIAutomation元素识别软件
  10. 【SD系列】SAP SD模块-公司间销售简介