HashMap的底层实现。(05)

#HASHMAP的简介

  • 通过学习本文档后能够掌握到的知识点
  • 1HashMap的简单介绍
  • 2HashMap的主要方法
  • 3模仿JAVA写一个简单的HASHMAP

子曰:“学而不思则罔,思而不学则殆。”
###1. 为什么学HASHMAP
作为MAP接口下面一个非常重要的知识点,HASHMAP是我们在工作当中必须得掌握的一个知识点。KEY-VALUE在面对很多场景都非常的有帮助。MAP(映射)不管是在获取对象类型也好还是在用于SPRING框架的HANDLMAP也好,键值对能帮我们处理非常多的事情。因此,我们需要学习这么一种集合类。

2.MAP中的常见子类及其方法。

MAP中最主要的几个子类就是,HASHMAP,HASHTABLE,TREEMAP(红黑树).HASHMAP与HASHTABLE基本一致除了,HASHTABLE是线程安全之外。TREEMAP目前无研究。因此不讨论,在工作中常用到的基本就是HASHMAP了。HASPMAP主要的几个方法。PUT():有两个参数,一个用来放置键对象,一个放值对象。GET();方法,通过键获取相应的值。REMOVE()方法,将某个键的值移除。当然还有很多类似的方法。需要用到的时候通过API文档,以及百度会有更加详细的介绍。

3. 一个简单的DEMO

今天,花了大半个上午学习了。如何实现简单的HASHMAP!在做东西前应该先了解什么是HASHMAP,所以可以先花时间看HASHMAP的源码作为参考。接着就是分析其模型。HASHMAP实际上就是两个集合的一种结合。一张ARRAYLIST一张LINKLIST。这里写图片描述
不知道我理解的对不对。但是大部分都是这么说的姑且就相信了他们吧!
做源码首先要创建其模型。
这里写图片描述
创建一个KEY,一个VALUE.
然后就是PUT,GET,REMOVE等等。只是大概的了解。


public class TestHashMap {
	//私有属性
	Entry[] arr = new Entry[1000];
	private int size;
//	private Object[] key; 我得思想是用两个数组来进行操作 ,但是如果进行扩容,就得同时操作两个数组。但是如果将其写成一个类的话就不用考虑两个了。
//	private Object[] value;
	//一个放键一个放Value
	public void put (Object key,Object value) {
		//判断是否存在键,是,将现有的VALUE覆盖掉前面的Key.
		Entry e = new Entry(key,value);
		arr[size] =e;
	}
	
	public Object get(Object key) {
		Object value;
		for(int i=0;i<size;i++) {
			if(arr[i].key.equals(key)) {
				return arr[i].value;
			}
		}
		return null;
	}
	
	
	//类似的方式进行建造.
	
	public static void main(String[] args) {
		
	}
}

##4.总结
学习以后需要多看看,多复习。一次的记忆不足以够人们记忆的。多复习,多思考。能够更好的理解这些 。语言只是工具。更多的是算法,业务等。这是更加需要关注的!当然,千里之行始于足下。请人真对待,坚持是非常困难的一件事情!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值