java开始到熟悉105-107

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<size;i++)

16         {

17             if(arr[i].key.equals(key))

18             {

19                 arr[i].value=value;

20                 return;

21             }

22         }

23         arr[size++]=newarr;

24     }

25     public Object get(Object key)

26     {

27         for(int i=0;i<size;i++)

28         {

29             if(arr[i].key.equals(key))

30                 return arr[i].value;

31         }

32         return null;

33     }

34     public boolean containsKey(Object key)

35     {

36         for(int i=0;i<size;i++)

37         {

38             if(arr[i].key.equals(key))

39             {

40                 return true;

41             }

42         }

43         return false;

44     }

45     public boolean containsValue(Object value)

46     {

47         for(int i=0;i<size;i++)

48         {

49             if(arr[i].value.equals(value))

50             {

51                 return true;

52             }

53         }

54         return false;

55     }

56     public static void main(String[] args)

57     {

58         myHashMap arr=new myHashMap();

59         arr.put("日本", new car("丰田"));

60         arr.put("德国", new car("奔驰"));

61         arr.put("美国", new car("福特"));

62         arr.put("日本电器", new camera("canon"));

63         car c=(car)arr.get("日本");

64         System.out.println(c.name);

65         camera d=(camera)arr.get("日本电器");

66         System.out.println(d.name);

67         System.out.println(arr.containsKey("日本"));

68         System.out.println(arr.containsValue(new car("丰田")));

69         arr.put("日本", new car("本田"));

70         c=(car)arr.get("日本");

71         System.out.println(c.name);

72     }

73 }

74  class arrmap

75 {

76     Object key;

77     Object value;

78     public arrmap(Object key,Object value)

79     {

80         this.key=key;

81         this.value=value;

82     }

83 }

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         else

25         {

26             LinkedList list=arr[a];

27             for(int i=0;i<list.size();i++)

28             {

29                 arrmap arra1=(arrmap)list.get(i);

30                 if(arra1.key.equals(key))

31                 {

32                     arra1.value=value;

33                     return;

34                 }

35             }

36             arr[a].add(arra);

37         }

38     }

39     public Object get(Object key)

40     {

41         int a=key.hashCode()%999;

42         if(arr[a]!=null)

43         {

44             LinkedList list=arr[a];

45             for(int i=0;i<list.size();i++)

46             {

47                 arrmap arra=(arrmap)list.get(i);

48                 if(arra.key.equals(key))

49                 {

50                     return arra.value;

51                 }

52             }

53         }

54         return null;

55     }

56     public static void main(String[] args)

57     {

58         myHashMapUpdate arr=new myHashMapUpdate();

59         arr.put("日本", new car("丰田"));

60         arr.put("日本", new car("本田"));

61         arr.put("德国", new car("奔驰"));

62         arr.put("美国", new car("福特"));

63         arr.put("日本电器", new camera("canon"));

64         car c=(car)arr.get("日本");

65         System.out.println(c.name);

66     }

67 }

 

你可能感兴趣的:(java)