map.coffee

class Map
    constructor : -> 
        @entry = {}
        @count = 0
    
    size : -> 
        return @count
    
    isEmpty : -> 
        return @count == 0
    
    containsKey : (key) ->
        if @isEmpty()
            return false
        return @entry.hasOwnProperty key
    
    containsValue : (val)->
        if @isEmpty()
            return false
        for key,_val of @entry
            if _val == val
                return true
        return false
    
    get : (key)->
        if @isEmpty()
            return null
        if @containsKey key
            return @entry[key]     
        return null
    
    put : (key, val)->
        if !@entry.hasOwnProperty key
            @count += 1;  
        @entry[key] = val
        return @
    
    remove : (key)-> 
        if @isEmpty()
            return false
        if @containsKey key
            delete @entry[key]
            @count -= 1
            return true
        return false    
    
    putAll : (map)->  
        if !map instanceof Map
            return false
        entry = map.entry
        for key,val of entry
            @put(key, val)
        return true
    
    clear : ->
        @entry = {}
        @count = 0
        return @ 
    
    values : ->  
        vals = []
        for key,val of @entry
            vals.push val
        return vals
        
    keySet : ->  
        keys = []
        for key,val of @entry
            keys.push key
        return keys
    
    entrySet : ->  
        return @entry
    
    toString : ->  
        if typeof JSON == "undefined"
            throw new Error "JSON object is not supported. Please check your browser version (IE8+, Firefox11+, Chrome19+, Safari5.1+)."
        return JSON.stringify @entry
    
    valueOf : ->  
        return @toString()

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值