如何在 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

回到顶部