HasMap

function HashMap(){
  //定义长度
  var length = 0;
  //创建一个对象
  var obj = new Object();

  /**
  * 判断Map是否为空
  */
  this.isEmpty = function(){
    return length == 0;
  };

  /**
  * 判断对象中是否包含给定Key
  */
  this.containsKey=function(key){
    return (key in obj);
  };
  /**
  * 判断对象中是否包含给定的Value
  */
  this.containsValue=function(value){
    for(var key in obj){
      if(obj[key] == value){
        return true;
      }
    }
  return false;
  };
  /**
  *向map中添加数据
  */
  this.put=function(key,value){
    if(!this.containsKey(key)){
      length++;
    }
    obj[key] = value;
  };
  //根据给定的Key获得Value
  this.get=function(key){
    return this.containsKey(key)?obj[key]:null;
  };
  //根据给定的Key删除一个值
  this.remove=function(key){
    if(this.containsKey(key)&&(delete obj[key])){
      length--;
    }
  };
  //获得Map中的所有Value
  this.values=function(){
    var _values= new Array();
    for(var key in obj){
      _values.push(obj[key]);
    }
    return _values;
  };
  //获取所有key
  this.keySet=function(){
    var _keys = new Array();
    for(var key in obj){
      _keys.push(key);
    }
    return _keys;
  };
  //获得Map的长度
  this.size = function(){
    return length;
  };
  //清空map
  this.clear = function(){
    length = 0;
    obj = new Object();
  };
}

时间: 2024-08-25 21:01:38

HasMap的相关文章

Java自定义类型作为HasMap的key的查找

最近常常会用到一些之前看过却没有实际去实现的小细节,深有感慨(掌握一门技术绝不是看一遍就够了,一遍远远不够,远远不够........), 言归正传,先直接上代码 Attributeresult 1 public class Attributeresult { 2 String value; 3 String result; 4 5 public Attributeresult() { 6 7 } 8 9 public Attributeresult(String value, String re

ArrayList的contains方法和HasMap的containsKey效率差十倍

问题源自于leetcode上的一道题: twoSum: Given an array of integers, return indices of the two numbers such that they add up to a specific target. You may assume that each input would have exactly one solution. Example: Given nums = [2, 7, 11, 15], target = 9, Be

集合--Map&&HasMap和TreeMap

特点:以键值对key,value方式存储的结构     key:Set集合 key能重复,无序的,如果重复,后面的key会把前面的覆盖掉(key必须是唯一的,不唯一,那么后面的value会把前面的value覆盖)     Value:List集合 value可以重复 key和value都可以为null 1.添加元素 map.put("key", "value"); 2.通过map中的key(不是下标)获取指定的元素 System.out.println(map.ge

OOM总结

本文主要信息是来自互联网,我只是自己做了一点总结和摘要. OOM发生的原因 简单的说通过不同的内存分配方式对不同的对象进行操作,会因为android系统版本的差异而产生不同的行为.主要是2.0和4.0有较大的变化. 在2.x系统中,dalvik allocated  + external allocated + 新分配的大小>= getMemoryClass() 就会发生OOM. 在4.x系统中,废除了external计数器,类似Bitmap的分配改到了Dalvik的java Heap 中申请,

android内存优化之图片压缩和缓存

由于手机内存的限制和网络流量的费用现在,我们在加载图片的时候,必须要做好图片的压缩和缓存. 图片缓存机制一般有2种,软引用和内存缓存技术. 1.压缩图片:压缩图片要既不能模糊,也不能拉伸图片. 图片操作的时候,最常用的是BitmapFactory,现在看看如何压缩图片. Bitmapfactory.Options options= new BitmapFactory.Options(); options.inJustDecodeBounds = true;// 如果设置这个参数为ture,就不会

MyBatis之传入参数——parameterType(转)

鸣谢:http://blog.csdn.net/liaoxiaohua1981/article/details/6862764 -------------------------------------------------------------------- 在MyBatis的select.insert.update.delete这些元素中都提到了parameterType这个属性.MyBatis现在可以使用的parameterType有基本数据类型和JAVA复杂数据类型 基本数据类型:包

自己做的demo--关于HashMap

1 package com.pb.collection; 2 3 import java.util.HashMap; 4 import java.util.Iterator; 5 import java.util.Map; 6 import java.util.Map.Entry; 7 import java.util.Set; 8 //by zengzhiwei 9 public class HashMapTest { 10 public static void main(String arg

【LRU Cache】cpp

题目: Design and implement a data structure for Least Recently Used (LRU) cache. It should support the following operations: get and set. get(key) - Get the value (will always be positive) of the key if the key exists in the cache, otherwise return -1.

Spring核心之IOC&反射

IOC思想:Spring容器来实现相互依赖对象的创建,协调工作.对象只需要关心业务逻辑本身就好了.从这方面来说,对象如何得到他的协作对象的责任被反转了(IOC.DI).控制反转就是获得依赖对象的方式反转了.由Spring来负责控制对象的生命周期和对象间的关系. IOC(控制反转)之中的核心是在系统运行中,动态的向某个对象提供它所需要的其他对象.这一点是通过DI(Dependency Injection,依赖注入)来实现的. 那么DI是如何实现的呢? Java 1.3之后一个重要特征是反射(ref