热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

js模拟HashMap的存储结构-无序版

functionMap(key,value){this[key]value;Map.prototype.putfunction(key,value){deletekey;this[ke
function Map(key,value){
this[key] = value;

Map.prototype.put = function(key,value){
delete key;
this[key] = value;
}
Map.prototype.get = function(key){
return this[key];
}
//如果 Map 包含指定键的映射,则返回 true
Map.prototype.cOntainsKey= function(key){
return this.hasOwnProperty(key);
}

//从 Map 中删除键和关联的值 删除成功返回true否则返回false
Map.prototype.remove = function(key){
return delete this[key];
}

//从 Map 中删除所有映射
Map.prototype.clear = function(){
for(var property in this){
delete this[property];
}
return this;
}

//返回所有的Key  字符串数组的形式
Map.prototype.keySet = function(){
var keyArray = new Array();
for(var property in this){
keyArray.push(property);
}
return keyArray;
}

//返回所有的Key对应的数据,数组形式
Map.prototype.entrySet = function(){
var valueArray = new Array();
for(var property in this){
if(this.hasOwnProperty(property)){
valueArray.push(this[property]);
}
}
return valueArray;
}


//返回 Map 中的键-值映射的数目
Map.prototype.size = function(){
var count = 0;
for(var property in this){
if(this.hasOwnProperty(property)){
++count;
}
}
return count;
}

//如果 Map 不包含键-值映射,则返回 true
Map.prototype.isEmpty = function(){
if(this.size > 0){
return true;
}
return false;
}

}



测试代码:

var map = new Map("key1","key1");


console.log(map.get("key1"));


map.put("key2","key2")
console.log(map.get("key2"));


map.put("key2","改过后的key2");
console.log(map.get("key2"));


console.log("size:"+map.size());
console.log("keySet:"+map.keySet());
console.log("entrySet:"+map.entrySet());
console.log("keySet:"+map.isEmpty());
console.log("remove:"+map.remove("key11"));
console.log("getkey1:"+map.get("key1"));
console.log("删除key1后:"+map.size());


console.log("包含containsKey:"+map.containsKey("key1"));
console.log("不包含containsKey:"+map.containsKey("key111"));


//console.log("clear:"+map.clear());
//console.log("清除后size:"+map.size());


推荐阅读
  • 缓存这个东西就是为了提高运行速度的,由于缓存是在寸土寸金的内存里面,不是在硬盘里面,所以容量是很有限的。LRU这个算法就是把最近一次使用时间离现在时间最远的数据删除掉。先说说List:每 ... [详细]
  • HashTable与ConcurrentHashMap均可实现HashMap的功能,对外提供了键值对存储的数据结构。但是在内部结构及实现上有何区别,性能上的差异到底在哪里又是如何导致的 ... [详细]
  • JDK源码学习之HashTable(附带面试题)的学习笔记
    本文介绍了JDK源码学习之HashTable(附带面试题)的学习笔记,包括HashTable的定义、数据类型、与HashMap的关系和区别。文章提供了干货,并附带了其他相关主题的学习笔记。 ... [详细]
  • 模板引擎StringTemplate的使用方法和特点
    本文介绍了模板引擎StringTemplate的使用方法和特点,包括强制Model和View的分离、Lazy-Evaluation、Recursive enable等。同时,还介绍了StringTemplate语法中的属性和普通字符的使用方法,并提供了向模板填充属性的示例代码。 ... [详细]
  • 转载自:http:www.blogjava.netCarpenterLeearchive20160427430268.html总体介绍之所以把HashSet和HashMa ... [详细]
  • 本篇文章给大家分享的是有关Java中怎么对HashMap按键值排序,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • HashMap的相关问题及其底层数据结构和操作流程
    本文介绍了关于HashMap的相关问题,包括其底层数据结构、JDK1.7和JDK1.8的差异、红黑树的使用、扩容和树化的条件、退化为链表的情况、索引的计算方法、hashcode和hash()方法的作用、数组容量的选择、Put方法的流程以及并发问题下的操作。文章还提到了扩容死链和数据错乱的问题,并探讨了key的设计要求。对于对Java面试中的HashMap问题感兴趣的读者,本文将为您提供一些有用的技术和经验。 ... [详细]
  • Hibernate延迟加载深入分析-集合属性的延迟加载策略
    本文深入分析了Hibernate延迟加载的机制,特别是集合属性的延迟加载策略。通过延迟加载,可以降低系统的内存开销,提高Hibernate的运行性能。对于集合属性,推荐使用延迟加载策略,即在系统需要使用集合属性时才从数据库装载关联的数据,避免一次加载所有集合属性导致性能下降。 ... [详细]
  • Ihaveaworkfolderdirectory.我有一个工作文件夹目录。holderDir.glob(*)>holder[ProjectOne, ... [详细]
  • 巧用arguments在Javascript的函数中有个名为arguments的类数组对象。它看起来是那么的诡异而且名不经传,但众多的Javascript库都使用着它强大的功能。所 ... [详细]
  • Java集合详解5:深入理解LinkedHashMap和LRU缓存
    Java集合详解5:深入理解LinkedHashMap和LRU缓存今天我们来深入探索一下LinkedHashMap的底层原理,并且使用linkedhashmap来实现LRU缓存。具体代码在我的 ... [详细]
  • 我有3个来自RESEARCHS的映射值,指定要使用参考数据集填充的行中的范围。该研究 ... [详细]
  • Java之HashMap在多线程情况下导致死循环的问题
    PS:不得不说Java编程思想这本书是真心强大..学习内容:1.HashMap<K,V>在多线程的情况下出现的死循环现象当初学Java的时候只是知道HashMap< ... [详细]
  • ***功能:排序*privatestaticvoidoutputRegionStatistics(HashMap<String,Integer>regionMap){ ... [详细]
author-avatar
狠心狼fd
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有