java使用数组实现Map集合
来源:互联网 发布:逐浪cms 编辑:程序博客网 时间:2024/06/06 09:22
package collection;import java.util.Arrays;import java.util.Collection;/*** @ClassName: ArrayImplMap* @Description:采用二维数组实现简单的Map集合(ArrayImplMap<String,String>)* 1、新建或扩充数组* 2、判断是否有值:* Y:覆盖* N:新增* @修改备注:*/public class ArrayImplMap { private int index = 0; private String[][] map= null; /** * new一个HashMap */public ArrayImplMap(){ if(map == null){ map = new String[0][0]; } } /** * 存储数据(如果Key值重复,则会被覆盖掉) * @param k key值 * @param v value值 */ public void put(String k,String v){ boolean flag = isRepeat(map, k, v);//查看是否重复,如果重复则直接替换新的Value值 if(!flag){ map = getAddSize(map,index+1);//将数组空间增加一条存储位置,用于下面存储一条新数据。 map[index][0] = k; map[index][1] = v; index++; } } /*** @Description:清除map内数据*/ public void clear(){ index = 0; map = new String[0][0]; } /*判断Map是否为空*/ public boolean isEmpty(){ return map.length == 0; } /*通过Key值获取数据 */ public String get(String key){ String value = null; for(int i=0;i<map.length;i++){ if(key.equals(map[i][0])){ value = map[i][1]; break; } } return value; } /*Map总长度 */ public int size(){ return map.length; } /*是否包含K的值 */ public boolean containsKey(String key){ return isContainsKey(key,0); } /*是否包含V的值 */ public boolean containsValue(String value){ return isContainsKey(value,1); } /*返回所有V的集合*/ public Collection<String> values(){ Collection<String> values = Arrays.asList(values(1)); return values; } /** * 扩充空间:增加二维数组的存储空间,数据不变 * @param map 要增长的数组 * @param length 新的长度 * @return */ private String[][] getAddSize(String[][] map,int length){ if(map ==null){ map = new String[1][2];// 创建单条数据数组长度 } String[][] tmp = new String[length][2];//创建新的数组 System.arraycopy(map, 0, tmp, 0, map.length);//将原始数据拷贝到新的数组中 map = null;//不需要了,等待自动垃圾回收 return tmp; } /*二维数组,根据传入参数考虑取得K的值还是V的值*/ private String[] values(int ind){ String[] v = new String[map.length]; for(int i=0;i<map.length;i++){ v[i] = map[i][ind]; } return v; } /*二维数组,判断是否保存K或V*/ private boolean isContainsKey(String key,int ind) { boolean flag = false; for(int i=0; i < map.length; i++){ if(key.equals(map[i][ind])){//查看是否存在此Key值 flag = true; break; } } return flag; } /*** @Description:判断key是否存在,* 若存在 :修改其对应的value值* 若不存在 :返回false,* @param s map集合* @param k key* @param v value值* @return key存在标志* @修改备注:*/private boolean isRepeat(String[][] s,String k,String v){ boolean flag = false; for(int i=0; i < s.length; i++){ if(k.equals(s[i][0])){//查看是否存在此Key值 s[i][1] = v;//使用新的Value值 flag = true; break; } } return flag; } public static void main(String[] args) { ArrayImplMap map = new ArrayImplMap(); System.out.println(map.size()); map.put("k", "k"); map.put("k", "k2"); map.clear(); System.out.println(map.size()); map.put("k", "k"); map.put("v", "q"); map.put("o", "d"); map.put("t", "k"); System.out.println(map.size()); System.out.println(map.containsKey("b")); System.out.println(map.containsValue("k")); map.clear(); map.put(null, null); System.out.println(map.values()); }}
阅读全文
0 0
- java使用数组实现Map集合
- java使用数组实现简单的Map
- Java Map-集合实现原理
- Java集合之map 集合使用
- 数组与集合的应用之常用集合的使用(Map映射集合实现省市级联选择框)
- Java 实现Map集合排序功能
- Java实现多种方式遍历Map集合
- Java实现Map集合二级联动
- JAVA集合-Map集合
- java集合------Map集合
- Java集合----Map集合
- java集合map取key使用示例 java遍历map
- 数组 集合 map
- JAVA中Map集合的使用举例
- JAVA学习--集合Map的使用
- java 使用map集合出现的问题
- Java集合的使用:List与Map
- java基础之Map集合的使用
- mybatis关联映射
- 更换Django默认的模板引擎为jinja2
- 分享一下三个写的比较好的tensorflow多GPU模型,实现数据并行/模型并行
- 找出stm32的库函数外设初始化应用规律
- hdu 6033 Add More Zero
- java使用数组实现Map集合
- HDU 6127 Hard challenge+HDU 6129 Just do it【2017多校联赛】
- python中使用pip安装报错:Fatal error in launcher...解决方法
- jQuery导航
- 常用的26条git命令
- birt与poi上传excel冲突
- 剪花布条
- java编程易错
- POSIX多线程程序设计学习篇之五(线程高级编程)