mirror of
https://github.com/krahets/hello-algo.git
synced 2025-11-02 12:58:42 +08:00
Improve readability of Kotlin code (#1236)
* style(kotlin): Improve kotlin codes readability. * remove redundant quotes. * style(kotlin): improve codes readability.
This commit is contained in:
@ -14,15 +14,9 @@ class Pair(
|
||||
|
||||
/* 基于数组实现的哈希表 */
|
||||
class ArrayHashMap {
|
||||
// 初始化数组,包含 100 个桶
|
||||
private val buckets = arrayOfNulls<Pair>(100)
|
||||
|
||||
init {
|
||||
// 初始化数组,包含 100 个桶
|
||||
for (i in 0..<100) {
|
||||
buckets[i] = null
|
||||
}
|
||||
}
|
||||
|
||||
/* 哈希函数 */
|
||||
fun hashFunc(key: Int): Int {
|
||||
val index = key % 100
|
||||
@ -52,25 +46,27 @@ class ArrayHashMap {
|
||||
|
||||
/* 获取所有键值对 */
|
||||
fun pairSet(): MutableList<Pair> {
|
||||
val pairSet = ArrayList<Pair>()
|
||||
val pairSet = mutableListOf<Pair>()
|
||||
for (pair in buckets) {
|
||||
if (pair != null) pairSet.add(pair)
|
||||
if (pair != null)
|
||||
pairSet.add(pair)
|
||||
}
|
||||
return pairSet
|
||||
}
|
||||
|
||||
/* 获取所有键 */
|
||||
fun keySet(): MutableList<Int> {
|
||||
val keySet = ArrayList<Int>()
|
||||
val keySet = mutableListOf<Int>()
|
||||
for (pair in buckets) {
|
||||
if (pair != null) keySet.add(pair.key)
|
||||
if (pair != null)
|
||||
keySet.add(pair.key)
|
||||
}
|
||||
return keySet
|
||||
}
|
||||
|
||||
/* 获取所有值 */
|
||||
fun valueSet(): MutableList<String> {
|
||||
val valueSet = ArrayList<String>()
|
||||
val valueSet = mutableListOf<String>()
|
||||
for (pair in buckets) {
|
||||
pair?.let { valueSet.add(it.value) }
|
||||
}
|
||||
@ -82,7 +78,7 @@ class ArrayHashMap {
|
||||
for (kv in pairSet()) {
|
||||
val key = kv.key
|
||||
val value = kv.value
|
||||
println("${key}->${value}")
|
||||
println("${key} -> ${value}")
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -104,7 +100,7 @@ fun main() {
|
||||
|
||||
/* 查询操作 */
|
||||
// 向哈希表中输入键 key ,得到值 value
|
||||
val name: String? = map.get(15937)
|
||||
val name = map.get(15937)
|
||||
println("\n输入学号 15937 ,查询到姓名 $name")
|
||||
|
||||
/* 删除操作 */
|
||||
@ -114,7 +110,7 @@ fun main() {
|
||||
map.print()
|
||||
|
||||
/* 遍历哈希表 */
|
||||
println("\n遍历键值对 Key->Value")
|
||||
println("\n遍历键值对 Key -> Value")
|
||||
for (kv in map.pairSet()) {
|
||||
println("${kv.key} -> ${kv.value}")
|
||||
}
|
||||
@ -126,4 +122,4 @@ fun main() {
|
||||
for (value in map.valueSet()) {
|
||||
println(value)
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -11,15 +11,15 @@ import utils.ListNode
|
||||
/* Driver Code */
|
||||
fun main() {
|
||||
val num = 3
|
||||
val hashNum = Integer.hashCode(num)
|
||||
val hashNum = num.hashCode()
|
||||
println("整数 $num 的哈希值为 $hashNum")
|
||||
|
||||
val bol = true
|
||||
val hashBol = Boolean.hashCode()
|
||||
val hashBol = bol.hashCode()
|
||||
println("布尔量 $bol 的哈希值为 $hashBol")
|
||||
|
||||
val dec = 3.14159
|
||||
val hashDec = java.lang.Double.hashCode(dec)
|
||||
val hashDec = dec.hashCode()
|
||||
println("小数 $dec 的哈希值为 $hashDec")
|
||||
|
||||
val str = "Hello 算法"
|
||||
|
||||
@ -11,7 +11,7 @@ import utils.printHashMap
|
||||
/* Driver Code */
|
||||
fun main() {
|
||||
/* 初始化哈希表 */
|
||||
val map: MutableMap<Int, String> = HashMap()
|
||||
val map = HashMap<Int, String>()
|
||||
|
||||
/* 添加操作 */
|
||||
// 在哈希表中添加键值对 (key, value)
|
||||
|
||||
@ -20,7 +20,7 @@ class HashMapChaining() {
|
||||
capacity = 4
|
||||
loadThres = 2.0 / 3.0
|
||||
extendRatio = 2
|
||||
buckets = ArrayList(capacity)
|
||||
buckets = mutableListOf()
|
||||
for (i in 0..<capacity) {
|
||||
buckets.add(mutableListOf())
|
||||
}
|
||||
|
||||
@ -8,16 +8,21 @@ package chapter_hashing
|
||||
|
||||
/* 开放寻址哈希表 */
|
||||
class HashMapOpenAddressing {
|
||||
private var size: Int = 0 // 键值对数量
|
||||
private var capacity = 4 // 哈希表容量
|
||||
private val loadThres: Double = 2.0 / 3.0 // 触发扩容的负载因子阈值
|
||||
private val extendRatio = 2 // 扩容倍数
|
||||
private var buckets: Array<Pair?> // 桶数组
|
||||
private val TOMBSTONE = Pair(-1, "-1") // 删除标记
|
||||
private var size: Int // 键值对数量
|
||||
private var capacity: Int // 哈希表容量
|
||||
private val loadThres: Double // 触发扩容的负载因子阈值
|
||||
private val extendRatio: Int // 扩容倍数
|
||||
private var buckets: Array<Pair?> // 桶数组
|
||||
private val TOMBSTONE: Pair // 删除标记
|
||||
|
||||
/* 构造方法 */
|
||||
init {
|
||||
size = 0
|
||||
capacity = 4
|
||||
loadThres = 2.0 / 3.0
|
||||
extendRatio = 2
|
||||
buckets = arrayOfNulls(capacity)
|
||||
TOMBSTONE = Pair(-1, "-1")
|
||||
}
|
||||
|
||||
/* 哈希函数 */
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
|
||||
package chapter_hashing
|
||||
|
||||
const val MODULUS = 10_0000_0007
|
||||
const val MODULUS = 1000000007
|
||||
|
||||
/* 加法哈希 */
|
||||
fun addHash(key: String): Int {
|
||||
@ -48,7 +48,7 @@ fun rotHash(key: String): Int {
|
||||
fun main() {
|
||||
val key = "Hello 算法"
|
||||
|
||||
var hash: Int = addHash(key)
|
||||
var hash = addHash(key)
|
||||
println("加法哈希值为 $hash")
|
||||
|
||||
hash = mulHash(key)
|
||||
|
||||
Reference in New Issue
Block a user