Koleksi Scala - Peta

Peta skala adalah kumpulan pasangan kunci / nilai. Nilai apa pun dapat diambil berdasarkan kuncinya. Kunci unik di Peta, tetapi nilai tidak harus unik. Peta juga disebut tabel Hash. Ada dua jenis Maps, yaituimmutable dan mutable. Perbedaan antara objek yang bisa berubah dan objek yang tidak bisa diubah adalah ketika sebuah objek tidak bisa diubah, objek itu sendiri tidak dapat diubah.

Secara default, Scala menggunakan Peta yang tidak dapat diubah. Jika Anda ingin menggunakan Peta yang bisa berubah, Anda harus mengimporscala.collection.mutable.Mapkelas secara eksplisit. Jika Anda ingin menggunakan Peta yang tidak dapat diubah dan yang tidak dapat diubah secara bersamaan, Anda dapat terus merujuk ke Peta yang tidak dapat diubah sebagaiMap tapi Anda bisa merujuk ke set yang bisa berubah sebagai mutable.Map.

Berikut ini adalah contoh pernyataan untuk mendeklarasikan Maps yang tidak dapat diubah -

// Empty hash table whose keys are strings and values are integers:
var A:Map[Char,Int] = Map()

// A map with keys and values.
val colors = Map("red" -> "#FF0000", "azure" -> "#F0FFFF")

Saat menentukan peta kosong, anotasi tipe diperlukan karena sistem perlu menetapkan tipe konkret ke variabel. Jika kita ingin menambahkan pasangan nilai kunci ke Peta, kita bisa menggunakan operator + sebagai berikut.

A + = ('I' -> 1)
A + = ('J' -> 5)
A + = ('K' -> 10)
A + = ('L' -> 100)

Operasi Dasar di MAP

Semua operasi di peta dapat diekspresikan dalam tiga metode berikut.

Sr Tidak Metode & Deskripsi
1

keys

Metode ini mengembalikan iterable yang berisi setiap kunci di peta.

2

values

Metode ini mengembalikan iterable yang berisi setiap nilai di peta.

3

isEmpty

Metode ini mengembalikan nilai true jika peta kosong jika tidak salah.

Coba program contoh berikut yang menunjukkan penggunaan metode Peta.

Contoh

object Demo {
   def main(args: Array[String]) {
      val colors = Map(
         "red" -> "#FF0000", "azure" -> "#F0FFFF", "peru" -> "#CD853F"
      )
      val nums: Map[Int, Int] = Map()
      println( "Keys in colors : " + colors.keys )
      println( "Values in colors : " + colors.values )
      println( "Check if colors is empty : " + colors.isEmpty )
      println( "Check if nums is empty : " + nums.isEmpty )
   }
}

Simpan program di atas dalam Demo.scala. Perintah berikut digunakan untuk mengkompilasi dan menjalankan program ini.

Perintah

\>scalac Demo.scala
\>scala Demo

Keluaran

Keys in colors : Set(red, azure, peru)
Values in colors : MapLike(#FF0000, #F0FFFF, #CD853F)
Check if colors is empty : false
Check if nums is empty : true

Peta Gabungan

Anda bisa menggunakan keduanya ++ operator atau Map.++() metode untuk menggabungkan dua atau lebih Maps, tetapi saat menambahkan Maps itu akan menghapus kunci duplikat.

Coba program contoh berikut untuk menggabungkan dua Peta.

Contoh

object Demo {
   def main(args: Array[String]) {
      val colors1 = Map(
         "red" -> "#FF0000", "azure" -> "#F0FFFF", "peru" -> "#CD853F"
      )
      val colors2 = Map(
         "blue" -> "#0033FF", "yellow" -> "#FFFF00", "red" -> "#FF0000"
      )
      // use two or more Maps with ++ as operator
      var colors = colors1 ++ colors2
      println( "colors1 ++ colors2 : " + colors )
      // use two maps with ++ as method
      colors = colors1.++(colors2)
      println( "colors1.++(colors2)) : " + colors )
   }
}

Simpan program di atas dalam Demo.scala. Perintah berikut digunakan untuk mengkompilasi dan menjalankan program ini.

Perintah

\>scalac Demo.scala
\>scala Demo

Keluaran

colors1 ++ colors2 : Map(blue -> #0033FF, azure -> #F0FFFF, 
   peru -> #CD853F, yellow -> #FFFF00, red -> #FF0000)

colors1.++(colors2)) : Map(blue -> #0033FF, azure -> #F0FFFF, 
   peru -> #CD853F, yellow -> #FFFF00, red -> #FF0000)

Cetak Kunci dan Nilai dari Peta

Anda dapat melakukan iterasi melalui kunci dan nilai Peta menggunakan loop "foreach". Di sini, kami menggunakan metodeforeachterkait dengan iterator untuk berjalan melalui tombol. Berikut contoh programnya.

Contoh

object Demo {
   def main(args: Array[String]) {
      val colors = Map("red" -> "#FF0000", "azure" -> "#F0FFFF","peru" -> "#CD853F")

      colors.keys.foreach{
         i =>  
         print( "Key = " + i )
         println(" Value = " + colors(i) )
      }
   }
}

Simpan program di atas dalam Demo.scala. Perintah berikut digunakan untuk mengkompilasi dan menjalankan program ini.

Perintah

\>scalac Demo.scala
\>scala Demo

Keluaran

Key = red Value = #FF0000
Key = azure Value = #F0FFFF
Key = peru Value = #CD853F

Periksa kunci di Peta

Anda bisa menggunakan keduanya Map.containsmetode untuk menguji apakah kunci tertentu ada di peta atau tidak. Coba program contoh berikut untuk pemeriksaan kunci.

Contoh

object Demo {
   def main(args: Array[String]) {
      val colors = Map(
         "red" -> "#FF0000", "azure" -> "#F0FFFF", "peru" -> "#CD853F"
      )
      if( colors.contains( "red" )) {
         println("Red key exists with value :"  + colors("red"))
      } else {
         println("Red key does not exist")
      }
      if( colors.contains( "maroon" )) {
         println("Maroon key exists with value :"  + colors("maroon"))
      } else {
         println("Maroon key does not exist")
      }
   }
}

Simpan program di atas dalam Demo.scala. Perintah berikut digunakan untuk mengkompilasi dan menjalankan program ini.

Perintah

\>scalac Demo.scala
\>scala Demo

Keluaran

Red key exists with value :#FF0000
Maroon key does not exist