如何在 Kotlin 中迭代 Hashmap?
Map 是一个集合,其中数据存储为键值对,并且对应的键必须是唯一的。HashMap 是一个基于 MutableMap 接口的集合类,它通过实现 HashTable 的 MutableMap 接口来实现。Kotlin 提供了四种类型的构造函数来定义和操作 HashMap。
HashMap()– 它是帮助我们创建空 HashMap 的默认构造函数。
HashMap(initialCapacity: Int, loadFactor: Float = 0f) - 它帮助我们使用初始容量创建一个HashMap;如果没有提供,那么它将被忽略并作为默认值HashMap()。
HashMap(initialCapacity: Int) - 它帮助我们创建具有给定容量的 HashMap。
HashMap(original: Map <out K, V>) – 它创建 Map 中指定的 HashMap 实例。
在这里,我们将使用HashMap()构造函数来创建一个 HashMap 及其对应Put()的填充一些键值数据。在此示例中,我们将创建一个“主题”集合,其中包含主题名称和我们的个人偏好编号。我们将使用 Kotlin 库中提供的不同选项来遍历这个 HashMap。
使用for()循环迭代
在传统的编程语言中,我们有for()循环遍历任何集合。for()在下面的示例中,我们将使用循环遍历 Map 。
示例
fun main(args: Array<String>) {输出结果//声明 HashMap
var subject : HashMap<String, Int>
= HashMap<String, Int> ();
//为 HashMap 赋值
subject.put("Java" , 1);
subject.put("Kotlin" , 2);
subject.put("Python" , 3);
subject.put("C++" , 4);
subject.put("SQL" , 5);
//遍历 for 循环
println("---------iterate using for Loop------------\n")
for ((k, v) in subject) {
println(" Subject Name -> $k and its preference -> $v")
}
println("\n\n")
}
执行代码后,它将生成以下输出 -
$kotlinc -nowarnmain.kt-include-runtime -d main.jar$java -Xmx128M -Xms16M -jar main.jar
---------iterate using for Loop------------
Subject Name -> Java and its preference -> 1
Subject Name -> C++ and its preference -> 4
Subject Name -> Kotlin and its preference -> 2
Subject Name -> Python and its preference -> 3
Subject Name -> SQL and its preference -> 5
使用ForEach()循环迭代
除了for()循环,我们还可以使用ForEach()通过集合传播。forEach()在下面的示例中,我们将使用循环遍历 Map 。
示例
fun main(args: Array<String>) {输出结果//声明 HashMap
var subject : HashMap<String, Int>
= HashMap<String, Int> ();
//为 HashMap 赋值
subject.put("Java" , 1);
subject.put("Kotlin" , 2);
subject.put("Python" , 3);
subject.put("C++" , 4);
subject.put("SQL" , 5);
//使用 forEach 进行迭代
println("------iterate using forEach Method---------\n")
subject.forEach{ (k, v) ->
println(" Subject Name -> $k and its preference -> $v")
}
println("\n\n")
}
执行代码后,它将产生以下输出 -
$kotlinc -nowarnmain.kt-include-runtime -d main.jar$java -Xmx128M -Xms16M -jar main.jar
------iterate using forEach Method---------
Subject Name -> Java and its preference -> 1
Subject Name -> C++ and its preference -> 4
Subject Name -> Kotlin and its preference -> 2
Subject Name -> Python and its preference -> 3
Subject Name -> SQL and its preference -> 5
使用iterator()方法
除了上述遍历集合的传统方式外,Kotlin 标准库还提供了一个名为的函数iterator(),我们可以使用该函数来访问集合中的对象,而不会暴露其值。这是访问集合的所有值的最有效方式。在下面的示例中,我们将使用该iterator()方法遍历 Hashmap。
示例
fun main(args: Array<String>) {输出结果//声明 HashMap
var subject : HashMap<String, Int>
= HashMap<String, Int> ();
//为 HashMap 赋值
subject.put("Java" , 1);
subject.put("Kotlin" , 2);
subject.put("Python" , 3);
subject.put("C++" , 4);
subject.put("SQL" , 5);
//使用 iterator() 方法
println("-----------Using iterator() Method-----------\n")
val i = subject.keys.iterator()
while (i.hasNext()) {
val key = i.next()
val value = subject[key]
println("Subject Name -> ${key} and its preference -> $value")
}
}
执行代码后,它将生成以下输出 -
$kotlinc -nowarnmain.kt-include-runtime -d main.jar$java -Xmx128M -Xms16M -jar main.jar
-----------Using iterator() Method-----------
Subject Name -> Java and its preference -> 1
Subject Name -> C++ and its preference -> 4
Subject Name -> Kotlin and its preference -> 2
Subject Name -> Python and its preference -> 3
Subject Name -> SQL and its preference -> 5
以上是 如何在 Kotlin 中迭代 Hashmap? 的全部内容, 来源链接: utcz.com/z/297059.html