Map集合操作
package com.gcx.demo2; import java.util.HashMap; import java.util.Map; /** * 测试Map 基本用法 * @author Administrator * */ public class Demo3 { public static void main(String[] args) { Map map=new HashMap(); map.put("gcx", "123"); map.put("高晨曦", new Friend("张三")); map.put("王五", new Friend("李四")); //获得指定的key Friend f = (Friend) map.get("高晨曦"); System.out.println(f.name); //删除指定key map.remove("王五"); System.out.println(map.size()); //是否包含这个key boolean containsKey = map.containsKey("高晨曦"); System.out.println(containsKey); } } class Friend{ String name; public Friend(String name) { super(); this.name = name; } }
Map集合分拣存储
package com.gcx.demo; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; /** * HashMap分拣存储 * @author Administrator * */ public class Demo1{ public static void main(String[] args) { //分割字符串 String[] arr="this is a cat and that is a nice and where is my dog".split(" "); //分拣存储 Map<string integer=""> map=new HashMap<string integer="">(); for(String key:arr){ //查看是否存在 if(!map.containsKey(key)){ map.put(key, 1); }else{ //存在 map.put(key, map.get(key)+1); } } //查看每个单词出现次数 Set<string> keySet = map.keySet(); //获取对象 Iterator<string> iterator = keySet.iterator(); while(iterator.hasNext()){ String key = iterator.next(); Integer value=map.get(key); System.out.println(key+"---"+value); } } } </string></string></string></string>
底层实现
package com.gcx.demo2; import java.util.LinkedList; import java.util.List; /** * 简易Map底层实现(数组+链表+哈希算法实现) * @author Administrator * */ @SuppressWarnings("all") public class Demo4 { LinkedList[] arr=new LinkedList[999]; int size; /** * 添加键值对 */ public void put(Object key,Object value){ MyEntry my=new MyEntry(key,value); int hash=key.hashCode(); hash=hash<0?-hash:hash; int a=hash%arr.length; if(arr[a]==null){ LinkedList list=new LinkedList(); arr[a]=list; list.add(my); }else{ LinkedList list=arr[a]; for(int i=0;i<list.size();i++){ MyEntry entry2=(MyEntry) list.get(i); if(entry2.key.equals(key)){ entry2.value=value; return ; } } arr[a].add(my); } } /** * 根据键获取值 * @param key * @return */ public Object get(Object key){ int a=key.hashCode()%arr.length; if(arr[a]!=null){ LinkedList list=arr[a]; for(int i=0;i<list.size();i++){ MyEntry entry=(MyEntry) list.get(i); if(entry.key.equals(key)){ return entry.value; } } } return null; } public static void main(String[] args) { Demo4 d=new Demo4(); d.put("高晨曦", new Friend("王五")); d.put("高晨曦", new Friend("赵六")); d.put("张三", "李四"); Friend f = (Friend) d.get("高晨曦"); System.out.println(f.name); System.out.println(d.get("张三")); } } class MyEntry{ Object key; Object value; public MyEntry() { // TODO Auto-generated constructor stub } public MyEntry(Object key, Object value) { super(); this.key = key; this.value = value; } }