This commit is contained in:
krahets
2024-04-11 01:11:20 +08:00
parent a6adc8e20a
commit 739f8a31bb
85 changed files with 1555 additions and 979 deletions

View File

@ -1347,14 +1347,14 @@ comments: true
val bucket = buckets[index]
// 遍历桶,若找到 key ,则返回对应 val
for (pair in bucket) {
if (pair.key == key) return pair.value
if (pair.key == key) return pair._val
}
// 若未找到 key ,则返回 null
return null
}
/* 添加操作 */
fun put(key: Int, value: String) {
fun put(key: Int, _val: String) {
// 当负载因子超过阈值时,执行扩容
if (loadFactor() > loadThres) {
extend()
@ -1364,12 +1364,12 @@ comments: true
// 遍历桶,若遇到指定 key ,则更新对应 val 并返回
for (pair in bucket) {
if (pair.key == key) {
pair.value = value
pair._val = _val
return
}
}
// 若无该 key ,则将键值对添加至尾部
val pair = Pair(key, value)
val pair = Pair(key, _val)
bucket.add(pair)
size++
}
@ -1403,7 +1403,7 @@ comments: true
// 将键值对从原哈希表搬运至新哈希表
for (bucket in bucketsTmp) {
for (pair in bucket) {
put(pair.key, pair.value)
put(pair.key, pair._val)
}
}
}
@ -1414,7 +1414,7 @@ comments: true
val res = mutableListOf<String>()
for (pair in bucket) {
val k = pair.key
val v = pair.value
val v = pair._val
res.add("$k -> $v")
}
println(res)
@ -3017,14 +3017,14 @@ comments: true
val index = findBucket(key)
// 若找到键值对,则返回对应 val
if (buckets[index] != null && buckets[index] != TOMBSTONE) {
return buckets[index]?.value
return buckets[index]?._val
}
// 若键值对不存在,则返回 null
return null
}
/* 添加操作 */
fun put(key: Int, value: String) {
fun put(key: Int, _val: String) {
// 当负载因子超过阈值时,执行扩容
if (loadFactor() > loadThres) {
extend()
@ -3033,11 +3033,11 @@ comments: true
val index = findBucket(key)
// 若找到键值对,则覆盖 val 并返回
if (buckets[index] != null && buckets[index] != TOMBSTONE) {
buckets[index]!!.value = value
buckets[index]!!._val = _val
return
}
// 若键值对不存在,则添加该键值对
buckets[index] = Pair(key, value)
buckets[index] = Pair(key, _val)
size++
}
@ -3063,7 +3063,7 @@ comments: true
// 将键值对从原哈希表搬运至新哈希表
for (pair in bucketsTmp) {
if (pair != null && pair != TOMBSTONE) {
put(pair.key, pair.value)
put(pair.key, pair._val)
}
}
}
@ -3076,7 +3076,7 @@ comments: true
} else if (pair == TOMBSTONE) {
println("TOMESTOME")
} else {
println("${pair.key} -> ${pair.value}")
println("${pair.key} -> ${pair._val}")
}
}
}

View File

@ -1584,7 +1584,7 @@ index = hash(key) % capacity
/* 键值对 */
class Pair(
var key: Int,
var value: String
var _val: String
)
/* 基于数组实现的哈希表 */
@ -1602,12 +1602,12 @@ index = hash(key) % capacity
fun get(key: Int): String? {
val index = hashFunc(key)
val pair = buckets[index] ?: return null
return pair.value
return pair._val
}
/* 添加操作 */
fun put(key: Int, value: String) {
val pair = Pair(key, value)
fun put(key: Int, _val: String) {
val pair = Pair(key, _val)
val index = hashFunc(key)
buckets[index] = pair
}
@ -1643,7 +1643,7 @@ index = hash(key) % capacity
fun valueSet(): MutableList<String> {
val valueSet = mutableListOf<String>()
for (pair in buckets) {
pair?.let { valueSet.add(it.value) }
pair?.let { valueSet.add(it._val) }
}
return valueSet
}
@ -1652,8 +1652,8 @@ index = hash(key) % capacity
fun print() {
for (kv in pairSet()) {
val key = kv.key
val value = kv.value
println("${key} -> ${value}")
val _val = kv._val
println("${key} -> ${_val}")
}
}
}
@ -1673,12 +1673,12 @@ index = hash(key) % capacity
fun get(key: Int): String? {
val index = hashFunc(key)
val pair = buckets[index] ?: return null
return pair.value
return pair._val
}
/* 添加操作 */
fun put(key: Int, value: String) {
val pair = Pair(key, value)
fun put(key: Int, _val: String) {
val pair = Pair(key, _val)
val index = hashFunc(key)
buckets[index] = pair
}
@ -1714,7 +1714,7 @@ index = hash(key) % capacity
fun valueSet(): MutableList<String> {
val valueSet = mutableListOf<String>()
for (pair in buckets) {
pair?.let { valueSet.add(it.value) }
pair?.let { valueSet.add(it._val) }
}
return valueSet
}
@ -1723,8 +1723,8 @@ index = hash(key) % capacity
fun print() {
for (kv in pairSet()) {
val key = kv.key
val value = kv.value
println("${key} -> ${value}")
val _val = kv._val
println("${key} -> ${_val}")
}
}
}