File tree Expand file tree Collapse file tree 1 file changed +97
-0
lines changed Expand file tree Collapse file tree 1 file changed +97
-0
lines changed Original file line number Diff line number Diff line change
1
+ public class MyHashMap
2
+ {
3
+ private class LinkedListNode
4
+ {
5
+ public LinkedListNode ( int key , int val , LinkedListNode next )
6
+ {
7
+ this . Key = key ;
8
+ this . Val = val ;
9
+ this . Next = next ;
10
+ }
11
+
12
+ public int Key { get ; set ; }
13
+ public int Val { get ; set ; }
14
+ public LinkedListNode Next { get ; set ; }
15
+ }
16
+
17
+ public MyHashMap ( )
18
+ {
19
+ Map = new LinkedListNode [ 10000 ] ;
20
+ }
21
+
22
+ public int Hash ( int key )
23
+ {
24
+ return key % Map . Length ;
25
+ }
26
+
27
+ public void Put ( int key , int value )
28
+ {
29
+ int index = Hash ( key ) ;
30
+ if ( Map [ index ] == null )
31
+ Map [ index ] = new LinkedListNode ( key , value , null ) ;
32
+ else
33
+ {
34
+ LinkedListNode node = Map [ index ] ;
35
+ while ( true )
36
+ {
37
+ if ( node . Key == key )
38
+ {
39
+ node . Val = value ;
40
+ return ;
41
+ }
42
+ if ( node . Next == null )
43
+ break ;
44
+ else
45
+ node = node . Next ;
46
+ }
47
+ node . Next = new LinkedListNode ( key , value , null ) ;
48
+ }
49
+ }
50
+
51
+ public int Get ( int key )
52
+ {
53
+ int index = Hash ( key ) ;
54
+ LinkedListNode node = Map [ index ] ;
55
+ if ( node != null )
56
+ {
57
+ while ( true )
58
+ {
59
+ if ( node . Key == key )
60
+ return node . Val ;
61
+
62
+ if ( node . Next == null )
63
+ break ;
64
+ else
65
+ node = node . Next ;
66
+ }
67
+ }
68
+
69
+ return - 1 ;
70
+ }
71
+
72
+ public void Remove ( int key )
73
+ {
74
+ int index = Hash ( key ) ;
75
+ LinkedListNode node = Map [ index ] ;
76
+ if ( node == null )
77
+ return ;
78
+ if ( node . Key == key )
79
+ {
80
+ Map [ index ] = node . Next ;
81
+ node = null ;
82
+ return ;
83
+ }
84
+ while ( node . Next != null )
85
+ {
86
+ if ( node . Next . Key == key )
87
+ {
88
+ node . Next = node . Next . Next ;
89
+ return ;
90
+ }
91
+
92
+ node = node . Next ;
93
+ }
94
+ }
95
+
96
+ private LinkedListNode [ ] Map { get ; set ; }
97
+ }
You can’t perform that action at this time.
0 commit comments