1,HashMap基本用法
1 package list; 2 3 import java.util.HashMap; 4 import java.util.Map; 5 6 /** 7 * 测试map的基本用法 8 * @author acer 9 *10 */11 public class Hashmap {12 public static void main(String[] args)13 {14 Map map=new HashMap();15 System.out.println(map.isEmpty());16 map.put("日本汽车", new car("丰田"));17 map.put("德国汽车", new car("奥迪"));18 map.put("日本电器", new camera("canon"));19 map.put("one", new Integer(1));20 System.out.println(map.size());21 car c=(car)map.get("日本汽车");22 System.out.println(c.name);23 System.out.println(map.containsKey("日本汽车"));24 System.out.println(map.containsValue(new car("canon")));25 System.out.println(map.containsValue(new Integer(1)));26 map.remove("日本");27 }28 }29 class car{30 String name;31 public car(String name)32 {33 this.name=name;34 }35 }36 class camera{37 String name;38 public camera(String name)39 {40 this.name=name;41 }42 }
2.自己定义HashMap()(原始版)
1 package list; 2 /** 3 * 实现较为粗糙的HashMap类 4 * Map:1,存放键值对2根据键对象找相应的值对象3键值不能重复 5 * @author acer 6 * 7 */ 8 public class myHashMap { 9 arrmap[] arr=new arrmap[100];//此时暂时不考虑数组扩容问题,只实现一些基本的方法10 int size;11 public void put(Object key,Object value)12 {13 arrmap newarr=new arrmap(key,value);14 //解决键值重复的问题15 for(int i=0;i
3.升级版
1 package list; 2 3 import java.util.LinkedList; 4 5 /** 6 * 完善粗糙的myhashmap 7 * 提高查询效率 8 * @author acer 9 *10 */11 public class myHashMapUpdate {12 LinkedList[] arr=new LinkedList[999];13 int size;14 public void put(Object key,Object value)15 {16 arrmap arra=new arrmap(key,value);17 int a=key.hashCode()%999;18 if(arr[a]==null)19 {20 LinkedList list=new LinkedList();21 arr[a]=list;22 list.add(arra);23 }24 else25 {26 LinkedList list=arr[a];27 for(int i=0;i