mirror of
https://github.com/krahets/hello-algo.git
synced 2025-11-02 12:58:42 +08:00
@ -4,8 +4,8 @@
|
||||
* Author: nuomi1 (nuomi1@qq.com)
|
||||
*/
|
||||
|
||||
/* 键值对 int->String */
|
||||
class Entry {
|
||||
/* 键值对 */
|
||||
class Pair {
|
||||
var key: Int
|
||||
var val: String
|
||||
|
||||
@ -17,7 +17,7 @@ class Entry {
|
||||
|
||||
/* 基于数组简易实现的哈希表 */
|
||||
class ArrayHashMap {
|
||||
private var buckets: [Entry?] = []
|
||||
private var buckets: [Pair?] = []
|
||||
|
||||
init() {
|
||||
// 初始化数组,包含 100 个桶
|
||||
@ -41,7 +41,7 @@ class ArrayHashMap {
|
||||
|
||||
/* 添加操作 */
|
||||
func put(key: Int, val: String) {
|
||||
let pair = Entry(key: key, val: val)
|
||||
let pair = Pair(key: key, val: val)
|
||||
let index = hashFunc(key: key)
|
||||
buckets[index] = pair
|
||||
}
|
||||
@ -54,14 +54,14 @@ class ArrayHashMap {
|
||||
}
|
||||
|
||||
/* 获取所有键值对 */
|
||||
func entrySet() -> [Entry] {
|
||||
var entrySet: [Entry] = []
|
||||
func pairSet() -> [Pair] {
|
||||
var pairSet: [Pair] = []
|
||||
for pair in buckets {
|
||||
if let pair = pair {
|
||||
entrySet.append(pair)
|
||||
pairSet.append(pair)
|
||||
}
|
||||
}
|
||||
return entrySet
|
||||
return pairSet
|
||||
}
|
||||
|
||||
/* 获取所有键 */
|
||||
@ -88,8 +88,8 @@ class ArrayHashMap {
|
||||
|
||||
/* 打印哈希表 */
|
||||
func print() {
|
||||
for entry in entrySet() {
|
||||
Swift.print("\(entry.key) -> \(entry.val)")
|
||||
for pair in pairSet() {
|
||||
Swift.print("\(pair.key) -> \(pair.val)")
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -124,8 +124,8 @@ enum _ArrayHashMap {
|
||||
|
||||
/* 遍历哈希表 */
|
||||
print("\n遍历键值对 Key->Value")
|
||||
for entry in map.entrySet() {
|
||||
print("\(entry.key) -> \(entry.val)")
|
||||
for pair in map.pairSet() {
|
||||
print("\(pair.key) -> \(pair.val)")
|
||||
}
|
||||
print("\n单独遍历键 Key")
|
||||
for key in map.keySet() {
|
||||
|
||||
Reference in New Issue
Block a user