javascript自定义数据结构
Easul Lv4

HashMap

折叠代码块JAVASCRIPT 复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
HashMap () {
// Map 大小
var size = 0
// 对象
var entry = {}

// 存
this.put = function (key, value) {
if (!this.containsKey(key)) {
size++
}
entry[key] = value
}

// 取
this.get = function (key) {
return this.containsKey(key) ? entry[key] : null
}

// 删除
this.remove = function (key) {
if (this.containsKey(key) && (delete entry[key])) {
size--
}
}

// 是否包含 Key
this.containsKey = function (key) {
return (key in entry)
}

// 是否包含 Value
this.containsValue = function (value) {
for (var prop in entry) {
if (entry[prop] === value) {
return true
}
}
return false
}

// 所有 Value
this.values = function () {
var values = []
for (var prop in entry) {
values.push(entry[prop])
}
return values
}

// 所有 Key
this.keys = function () {
var keys = []
for (var prop in entry) {
keys.push(prop)
}
return keys
}

// Map Size
this.size = function () {
return size
}

// 清空
this.clear = function () {
size = 0
entry = {}
}
// 根据 Value 获取key
this.getKeyByValue = function (value) {
for (var prop in entry) {
if (entry[prop] === value) {
return prop
}
}
return null
}
}
 评论
来发评论吧~
Powered By Valine
v1.5.2