/**
 * <code>Dictionary</code> 是一个字典型的数据存取类。
 * 原作者 LayaBox
 * author suo(修改部分源码 添加数组常用方法)
 */ class Dictionary { private _values : Array < any > = [ ] ; private _keys : Array < any > = [ ] ; /**
     * 获取所有的子元素列表。
     */ public get values ( ) : Array < any > { return this . _values ; } /**
     * 获取所有的子元素键名列表。
     */ public get keys ( ) : Array < any > { return this . _keys ; } /**
     * 设置所有的子元素列表。
     */ public set values ( value ) { this . _values = value ; } /**
     * 设置所有的子元素键名列表。
     */ public set keys ( value ) { this . _keys = value ; } param key param value public set ( key , value ) { var index = this . indexOf ( key ) ; if ( index >= 0 ) { this . _values [ index ] = value ; return ; } this . _keys . push ( key ) ; this . _values . push ( value ) ; } param key return public indexOf ( key ) { return this . _keys . indexOf ( key ) ; } param key return public get ( key ) { var index = this . indexOf ( key ) ; return index < 0 ? null : this . _values [ index ] ; } param key return public remove ( key ) { var index = this . indexOf ( key ) ; if ( index >= 0 ) { this . _keys . splice ( index , 1 ) ; this . _values . splice ( index , 1 ) ; return true ; } return false ; } /**
     * 清除此对象的键名列表和键值列表。
     */ public clear ( ) { this . _values . length = 0 ; this . _keys . length = 0 ; } /**
     * 获得字典长度
     */ public get length ( ) : number { return this . _values . length ; } /**
     * 拷贝字典
     */ public copy ( start = 0 , end = Number . MAX_VALUE ) { var dic = new Dictionary ( ) ; dic . values = this . _values . slice ( start , end ) ; dic . keys = this . _keys . slice ( start , end ) ; return dic ; } /**
     * 根据值找键（心里有点B数再用）
     */ public getKeyByValue ( value ) { var index = this . _values . indexOf ( value ) ; return index < 0 ? null : this . _keys [ index ] ; } /**
     * 是否存在
     */ public isExist ( key ) { return this . indexOf ( key ) != - 1 ; } }