Computer >> Máy Tính >  >> Lập trình >> Android

Làm thế nào để lặp lại Hashmap trong Kotlin?

Bản đồ là một tập hợp trong đó dữ liệu được lưu trữ dưới dạng một cặp khóa-giá trị và khóa tương ứng phải là duy nhất. HashMap là một giao diện MutableMap dựa trên lớp tập hợp và nó thực hiện điều đó bằng cách triển khai MutableMapinterface của HashTable. Kotlin cung cấp bốn loại phương thức khởi tạo để định nghĩa và thao tác với HashMap.

  • HashMap () - Đây là hàm tạo mặc định giúp chúng ta tạo một HashMap trống.

  • HashMap (InitialCapacity:Int, loadFactor:Float =0f) - Nó giúp chúng tôi tạo HashMap sử dụng dung lượng ban đầu; nếu nó không được cung cấp, thì nó sẽ bị bỏ qua và nó sẽ hoạt động như HashMap () mặc định.

  • HashMap (InitialCapacity:Int) - Nó giúp chúng tôi tạo HashMap với dung lượng đã cho.

  • HashMap (bản gốc:Bản đồ ) - Nó tạo một phiên bản của HashMap như được chỉ định trong Bản đồ.

Ở đây, chúng tôi sẽ sử dụng HashMap () phương thức khởi tạo để tạo HashMap và Put () tương ứng của nó để điền cùng một số dữ liệu khóa-giá trị. Trong ví dụ này, chúng tôi sẽ tạo một tập hợp "chủ đề" sẽ chứa tên chủ đề và số sở thích cá nhân của chúng tôi. Chúng tôi sẽ lặp lại HashMap này bằng cách sử dụng các tùy chọn khác nhau có sẵn trong thư viện Kotlin.

Lặp lại bằng cách sử dụng vòng lặp for ()

Trong các ngôn ngữ lập trình thông thường, chúng ta có for () vòng lặp để xem qua bất kỳ bộ sưu tập nào. Trong ví dụ sau, chúng tôi sẽ duyệt qua Bản đồ bằng cách sử dụng for () vòng lặp.

Ví dụ

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")
}

Đầu ra

Khi bạn thực thi mã, nó sẽ tạo ra kết quả sau -

$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

Lặp lại bằng ForEach () Loop

Bên cạnh vòng lặp for (), chúng ta cũng có thể sử dụng ForEach () để truyền qua acollection. Trong ví dụ sau, chúng ta sẽ duyệt qua Bản đồ bằng vòng lặp forEach ().

Ví dụ

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")
}

Đầu ra

Khi bạn thực thi mã, nó sẽ tạo ra kết quả sau -

$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

Sử dụng phương thức iterator ()

Ngoài các cách truyền thống ở trên để duyệt qua một bộ sưu tập, thư viện tiêu chuẩn Kotlin cũng cung cấp một hàm được gọi là iterator () mà chúng ta có thể sử dụng để truy cập các đối tượng trong một bộ sưu tập mà không làm lộ giá trị của cùng một bộ sưu tập. Đây là cách hiệu quả nhất để truy cập tất cả các giá trị của một tập hợp. Trong ví dụ sau, chúng tôi sẽ duyệt qua Hashmap bằng cách sử dụng iterator () phương pháp.

Ví dụ

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")
   }
}

Đầu ra

Khi bạn thực thi mã, nó sẽ tạo ra kết quả sau -

$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