自行实现Map底层结构(数组+链表) --Java版
来源:互联网 发布:sql查询语句实例股票 编辑:程序博客网 时间:2024/06/13 13:10
package Map;import Collection.TestLinkedList;/* * 自定义实现Map功能(底层:数组+链表) * Map:存放键值对,根据键找值 * 目的仅为更加了解该结构、编码部分不考虑细节 * 注意注释部分 * */class Entry<K, V> { K Key; V Value; public Entry(K key, V value) { super(); Key = key; Value = value; }}public class RealizeMap<K, V, E> { @SuppressWarnings("unchecked") TestLinkedList<Entry<K, V>> arr[] = new TestLinkedList[165]; int size; RealizeMap() { size = 0; } public void put(K key, V value) { // 注意不能漏了->处理键值覆盖 Entry<K, V> e = new Entry<>(key, value); int hash = key.hashCode() % 165; if (arr[hash] == null) { TestLinkedList<Entry<K, V>> list = new TestLinkedList<>(); arr[hash] = list; list.addLast(e); }else { for(int i=0;i<arr[hash].size;i++) { Entry<K, V> E = arr[hash].get(i);//由于E在此取义为该链表键对应节点的地址,所以直接改E即可覆盖之 if(E.Key.equals(key)) { E.Value = value; return; } } arr[hash].addLast(e); } } public V get(K key) { int hash = key.hashCode(); if (arr[hash] != null) { for (int i = 0; i < arr[hash].size; i++) { if (arr[hash].get(i).Key.equals(key)) return arr[hash].get(i).Value; } } return null; } public static void main(String[] args) { RealizeMap<String, String, Entry<String, String>> map = new RealizeMap<>(); map.put("1", "张三"); map.put("2", "李四"); map.put("2", "黎明"); map.put("3", "王五"); map.put("4", "马六"); System.out.println(map.get("2")); }}
0 0
- 自行实现Map底层结构(数组+链表) --Java版
- 自行实现ArrayList(底层结构数组)--Java版
- 自行实现LinkedList (链表) --Java版
- Java Map底层实现思路
- Java Map的底层实现
- Java -- Map的底层实现
- Map的底层实现
- Java中常见数据结构:list与map -底层如何实现
- Java中常见数据结构:list与map -底层如何实现
- Map的底层结构及分析
- JavaScript实现类Java的Map结构
- Java中Map的简单实现 用数组,链表,hashcode
- java自行实现单线程定时器
- Java数组和链表的底层实现
- java使用数组实现Map集合
- java使用数组实现简单的Map
- java虚拟机底层结构详解 .
- java虚拟机底层结构详解
- 为什么要用语义化标签
- hibernate框架(篇1)
- HTML代码中IMG标签的全部属性
- HTML标签及其属性
- 看别人的C/C++代码时发现自己所不知道的语法~
- 自行实现Map底层结构(数组+链表) --Java版
- Java 匿名内部类的详解
- Windows环境下Qt与MySQL编译环境配置
- IPD (Integrated Product Development): 企业开发产品的核心框架
- windows运行打开服务命令
- shell 脚本学习之 在mac下怎么执行shell脚本
- HTTP协议详解
- Mysql join语句使用教程。
- XZ_HTML之HTML<div>和<span>