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