แผนที่คือคอลเลกชั่นที่จัดเก็บข้อมูลเป็นคู่คีย์-ค่า และคีย์ที่เกี่ยวข้องจะต้องไม่ซ้ำกัน HashMap เป็นคลาสคอลเลกชันที่อิงตามอินเทอร์เฟซ MutableMap และทำโดยการใช้ MutableMapinterface ของ HashTable Kotlin มีตัวสร้างสี่ประเภทเพื่อกำหนดและจัดการ HashMap
-
HashMap() – เป็นคอนสตรัคเตอร์เริ่มต้นซึ่งช่วยให้เราสร้าง HashMap ที่ว่างเปล่า
-
HashMap(ค่าเริ่มต้น:Int, loadFactor:Float =0f) – ช่วยให้เราสร้าง HashMap โดยใช้ความจุเริ่มต้น หากไม่ได้ระบุไว้ ระบบจะละเว้นและทำหน้าที่เป็น HashMap() เริ่มต้น
-
HashMap (ความจุเริ่มต้น:Int) – ช่วยให้เราสร้าง HashMap ด้วยความจุที่กำหนด
-
HashMap(ต้นฉบับ:แผนที่ <ออก K, V>) – มันสร้างอินสแตนซ์ของ HashMap ตามที่ระบุไว้ในแผนที่
เราจะใช้ HashMap() ตัวสร้างเพื่อสร้าง HashMap และ Put() . ที่เกี่ยวข้อง เพื่อเติมข้อมูลคีย์-ค่าบางอย่างเหมือนกัน ในตัวอย่างนี้ เราจะสร้างคอลเลกชันของ "หัวเรื่อง" ซึ่งจะเก็บชื่อเรื่องและหมายเลขความชอบส่วนบุคคลของเรา เราจะทำซ้ำผ่าน HashMap นี้โดยใช้ตัวเลือกต่างๆ ที่มีอยู่ในไลบรารี Kotlin
วนซ้ำโดยใช้ for() วนซ้ำ
ในภาษาโปรแกรมทั่วไป เรามี for() วนซ้ำเพื่อสำรวจคอลเลกชันใด ๆ ในตัวอย่างต่อไปนี้ เราจะสำรวจผ่านแผนที่โดยใช้ for() วนซ้ำ
ตัวอย่าง
fun main(args: Array<String>) { //Declare HashMap var subject : HashMap<String, Int> = HashMap<String, Int> (); //Assigning value to HashMap subject.put("Java" , 1); subject.put("Kotlin" , 2); subject.put("Python" , 3); subject.put("C++" , 4); subject.put("SQL" , 5); //iterate through for loop println("---------iterate using for Loop------------\n") for ((k, v) in subject) { println(" Subject Name -> $k and its preference -> $v") } println("\n\n") }
ผลลัพธ์
เมื่อคุณรันโค้ด มันจะสร้างผลลัพธ์ต่อไปนี้ -
$kotlinc -nowarn main.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()
ตัวอย่าง
fun main(args: Array<String>) { //Declare HashMap var subject : HashMap<String, Int> = HashMap<String, Int> (); //Assigning value to HashMap subject.put("Java" , 1); subject.put("Kotlin" , 2); subject.put("Python" , 3); subject.put("C++" , 4); subject.put("SQL" , 5); //iterate using forEach println("------iterate using forEach Method---------\n") subject.forEach { (k, v) -> println(" Subject Name -> $k and its preference -> $v") } println("\n\n") }
ผลลัพธ์
เมื่อคุณรันโค้ด มันจะสร้างผลลัพธ์ต่อไปนี้ -
$kotlinc -nowarn main.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() ที่เราสามารถใช้เพื่อเข้าถึงวัตถุในคอลเลกชันโดยไม่เปิดเผยค่าของสิ่งเดียวกัน นี่เป็นวิธีที่มีประสิทธิภาพที่สุดในการเข้าถึงค่าทั้งหมดของคอลเล็กชัน ในตัวอย่างต่อไปนี้ เราจะสำรวจ Hashmap โดยใช้ iterator() วิธีการ
ตัวอย่าง
fun main(args: Array<String>) { //Declare HashMap var subject : HashMap<String, Int> = HashMap<String, Int> (); //Assigning value to HashMap subject.put("Java" , 1); subject.put("Kotlin" , 2); subject.put("Python" , 3); subject.put("C++" , 4); subject.put("SQL" , 5); //using iterator() method 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 -nowarn main.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