public class HashMap {

    //存储元素数组
private Entry[] entry = null; //记录map个数
private int size; //构造器
public HashMap() {
this.entry = new Entry[10];
} //增加新元素
public void put(Object key, Object value) { Entry e = new Entry(key, value); //增加哈希算法
int index=key.hashCode() % 10; entry[index] = e; size++;
} //获取元素
public Object get(Object key) {
//增加哈希算法
int index=key.hashCode() % 10; Entry e = entry[index]; return e.getValue();
} @Override
public String toString() { StringBuilder sb=new StringBuilder();
sb.append("[");
for(int i=0;i<entry.length -1;i++)
{
Entry e = entry[i];
if(e != null)
{
sb.append(e.getValue());
}
else
{
sb.append("null");
} if(i != entry.length-1)
{
sb.append(",");
}
}
sb.append("]"); return sb.toString(); }
}

测试代码

public class Demo {

    /***
* 简单的 put get方法
* @param args
*/
public static void main(String[] args) { HashMap map=new HashMap(); map.put("刘诗华", "罗兰"); System.out.println(map);// [null,罗兰,null,null,null,null,null,null,null,] Object s = map.get("刘诗华"); System.out.println(s); //罗兰 }
}

3-自己动手写HashMap 增加哈希算法的更多相关文章

  1. 2-自己动手写HashMap

    public class Entry { // 键 private Object key; // 值 private Object value; //构造器 public Entry(Object k ...

  2. 自己动手写HashMap

    HashMap是结合队列和链表各自的优点,创造的一种在查询和修改间取得性能平衡的一种集合! MyMap接口: package self; //接口 public interface MyMap { p ...

  3. 自己动手写 ASP.NET MVC 分页 part1

    学习编程也有一年半载了,从来没有自己动手写过东西,都是利用搜索软件找代码,最近偶发感慨,难道真的继续做码农??? 突发奇想是不是该自己动手写点东西,可是算法.逻辑思维都太弱了,只能copy网上的代码, ...

  4. HashMap与HashTable的哈希算法——JDK1.9源码阅读总结

    下面是HashTable源码中的put方法: 注意上面注释标注的地方: HashTable对于元素在哈希表中的坐标算法是: 将对象自身的哈希值key.hashCode()变为正数:hash & ...

  5. HashMap中的hash算法中的几个疑问

    HashMap中哈希算法的关键代码 //重新计算哈希值 static final int hash(Object key) { int h; return (key == null) ? 0 : (h ...

  6. 手写HashMap,快手面试官直呼内行!

    手写HashMap?这么狠,面试都卷到这种程度了? 第一次见到这个面试题,是在某个不方便透露姓名的Offer收割机大佬的文章: 这--我当时就麻了,我们都知道HashMap的数据结构是数组+链表+红黑 ...

  7. 【原创】自己动手写工具----XSmartNote [Beta 3.0]

    一.前面的话 在动笔之前,一直很纠结到底要不要继续完成这个工具,因为上次给它码代码还是一年多之前的事情,参考自己动手写工具----XSmartNote [Beta 2.0],这篇博文里,很多园友提出了 ...

  8. 自己动手写插件底层篇—基于jquery移动插件实现

    序言 本章作为自己动手写插件的第一篇文章,会尽可能的详细描述一些实现的方式和预备知识的讲解,随着知识点积累的一点点深入,可能到了后期讲解也会有所跳跃.所以,希望知识点不是很扎实的读者或者是初学者,不要 ...

  9. 自己动手写处理器之第一阶段(2)——MIPS指令集架构的演变

    将陆续上传本人写的新书<自己动手写处理器>(尚未出版),今天是第三篇.我尽量每周四篇 MIPS指令集架构自上世纪80年代出现后.一直在进行着更新换代,从最初的MIPS I到MIPS V,发 ...

随机推荐

  1. HotSpot VM GC 的种类

    collector种类 GC在 HotSpot VM 5.0里有四种: incremental (sometimes called train) low pause collector已被废弃,不在介 ...

  2. Gravitee.io Access Management docker-compose运行

    Gravitee.io 官方提供的docker-compose 快速运行的方式 默认ui 账户 admin adminadmin 环境准备 docker-compose 文件 # # Copyrigh ...

  3. Ubuntu安装时怎样分区

    1./swap交换分区,一般为你机器内存的两倍.少于这个容量.系统无法进入休眠. 实质是硬盘上的交换空间而非分区.所以没有格式,默认休眠将数据储存于此 能够取消(如不用swap必须再设定方可休眠)-- ...

  4. resolve和reject不会终结Promise的参数函数的执行

  5. ONVIF让NVR与网络监控摄像机更"亲密"

    NVR的发展目前看主要分为二大类,一类是接入级的嵌入式NVR,其主要针对主流的IP摄像机研发的一种NVR. 另一类是针对社区和平安城市级的大型NVR,其主要采用的是以高端服务器软.硬件结构为基础,以传 ...

  6. 关于 TypeReference 的解释

    首先 TypeReference  是描述 一个复杂 泛型的工具类. TypeReference 很多类库都有,用 fastjson 的 举例,大概就这个意思. 例子: Response<Fee ...

  7. laravel 事务处理

    //開啟事務 DB::beginTransaction(); try { //賬號密碼同步到後台登錄表 $user = new \App\Models\User; $user->name = $ ...

  8. ElasticSearch story(二)

    调优一个问题,碰到了一个坎:大家看一下下面两个字符串: 2018-10-16 18:01:34.000 abcdewfrwfe 2018-10-16 18:01:50.123 testAmily012 ...

  9. jquery遍历table的tr获取td的值

    方法一: var siginArray = []; $("#tbody").children("tr").each(function () { var sigi ...

  10. 转JMeter ----数据库 not allowed to connect to this MySQL

    测试的时候遇到报错:   Cannot create PoolableConnectionFactory (null,  message from server: "Host 'ceshiP ...