---
--- Generated by MLN Team (https://www.immomo.com)
--- Created by MLN Team.
--- DateTime: 15-01-2020 17:35
---

---
---  可变的Key-Value存储集合
---
---
---  该集合类设计目的是为了解决lua与Native数据传递时的性能损耗，如果不涉及到该场景，请使用table
---
---@note  Map只能存储基本数据类型（number，string）和 集合类(Map和Array), 其他类型都不允许。
---		需要与原生交互传递数据时使用，其余场景建议使用lua的table
---@class Map @parent class
---@public field name string 
---@type Map
local _class = {
	_priveta_class_name = "Map"}

---
---  创建Map集合实例
---
---@param capacity number  初始化的容量大小
---@return Map 
function Map(capacity)
	return _class
end

---
---  将Value为string的键值对存入集合
---
---@param key string  Key，不可为空
---@param value string  value，不可以为空
---@return Map 
function _class:put(key, value)
	return self
end

---
---  将Value为number的键值对存入集合
---
---@param key string  Key，不可为空
---@param value number  value
---@return Map 
function _class:put(key, value)
	return self
end

---
---  将Value为Map的键值对存入集合
---
---@param key string  Key，不可为空
---@param value Map  value，不可以为空
---@return Map 
function _class:put(key, value)
	return self
end

---
---  将Value为Array的键值对存入集合
---
---@param key string  Key，不可为空
---@param value Array  value，不可以为空
---@return Map 
function _class:put(key, value)
	return self
end

---
---  将指定Map中的所有映射复制到此Map
---
---@param maps Map  Map集合
---@return Map 
function _class:putAll(maps)
	return self
end

---
---  移除指定Key对应的键值对
---
---@param key string  要被移除的Key
---@return Map 
function _class:remove(key)
	return self
end

---
---  清空当前Map集合
---
---@return Map 
function _class:removeAll()
	return self
end

---
---  返回所有Key的Array集合
---
---@return Map Array
function _class:allKeys()
	return self
end

---
---  获取指定Key的number值
---
---@param key string  指定Key
---@return number 指定Key对应的的number值
function _class:get(key)
	return 0
end

---
---  获取指定Key的string值
---
---@param key string  指定Key
---@return string 指定Key对应的的string值
function _class:get(key)
	return "string"
end

---
---  获取指定Key对应的Map值
---
---@param key string  指定Key
---@return Map 指定Key对应的Map值
function _class:get(key)
	return Map()
end

---
---  获取指定Key对应的Array值
---
---@param key string  指定Key
---@return Array 指定Key对应的Array值
function _class:get(key)
	return Array()
end

---
---  获取键值对数量
---
---@return number 
function _class:stringSize()
	return 0
end

---
---  移除多个键值对
---
---@param keys Array  要被移除Key的集合
---@return Map 
function _class:removeObjects(keys)
	return self
end

return _class