Scala Map (mapa)
Mapa (mapa) to rodzaj par klucz-wartość iteracyjnych struktura (klucz / wartość).
Wszystkie podane wartości mogą być odczytane przez klucz.
Mapa klucz jest unikalny.
Mapa jest również nazywany tabeli mieszania (tabele Hash).
Map Istnieją dwa typy zmiennych i nie mogą być zmieniane, chyba że zmienna obiektu można modyfikować bez zmienny obiektów nie może.
Domyślnie Scala niezmiennej Map. Jeśli trzeba użyć zbiór zmiennych, należy wyraźnie przedstawić klasęimport scala.collection.mutable.Map
W Scala można wykorzystywać zmienne i niezmienne Mapa, bezpośrednie wykorzystanie Mapa niezmienne, zmienny use mutable.Map. Poniższy przykład pokazuje zastosowanie niezmiennej mapie:
// 空哈希表,键为字符串,值为整型 var A:Map[Char,Int] = Map() // Map 键值对演示 val colors = Map("red" -> "#FF0000", "azure" -> "#F0FFFF")
Podczas definiowania mapie, trzeba określić typ par klucz-wartość. Jeśli trzeba dodać parę klucz-wartość, można użyć znaku +, jak następuje:
A += ('I' -> 1) A += ('J' -> 5) A += ('K' -> 10) A += ('L' -> 100)
Podstawowe operacje na mapie
Scala Mapa Istnieją trzy podstawowe operacje:
sposób | opis |
---|---|
klucze | Powrót na mapie wszystkie klucze (klawisz) |
wartości | Mapa zwraca wszystkie wartości (value) |
isEmpty | Na mapie jest pusty Zwraca TRUE |
Przykłady
Poniższy przykład pokazuje zastosowanie powyższych trzech podstawowych metod:
object Test { def main(args: Array[String]) { val colors = Map("red" -> "#FF0000", "azure" -> "#F0FFFF", "peru" -> "#CD853F") val nums: Map[Int, Int] = Map() println( "colors 中的键为 : " + colors.keys ) println( "colors 中的值为 : " + colors.values ) println( "检测 colors 是否为空 : " + colors.isEmpty ) println( "检测 nums 是否为空 : " + nums.isEmpty ) } }
Realizacja powyższego kodu, wyjście jest:
$ scalac Test.scala $ scala Test colors 中的键为 : Set(red, azure, peru) colors 中的值为 : MapLike(#FF0000, #F0FFFF, #CD853F) 检测 colors 是否为空 : false 检测 nums 是否为空 : true
Mapa fuzji
Można użyć operatora++ lub mapę. ++ ()aby połączyć dwa Mapa, usuwa duplikat klucza, kiedy mapa fuzji. Poniższe dwa przykłady pokazują łączną Mapa:
object Test { def main(args: Array[String]) { val colors1 = Map("red" -> "#FF0000", "azure" -> "#F0FFFF", "peru" -> "#CD853F") val colors2 = Map("blue" -> "#0033FF", "yellow" -> "#FFFF00", "red" -> "#FF0000") // ++ 作为运算符 var colors = colors1 ++ colors2 println( "colors1 ++ colors2 : " + colors ) // ++ 作为方法 colors = colors1.++(colors2) println( "colors1.++(colors2)) : " + colors ) } }
Realizacja powyższego kodu, wyjście jest:
$ scalac Test.scala $ scala Test 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)
Mapa kluczy i wartości wyjściowych
Poniższa pętla foreach poprzez wyjście Mapa kluczy i wartości:
object Test { def main(args: Array[String]) { val sites = Map("w3big" -> "http://www.w3big.com", "baidu" -> "http://www.baidu.com", "taobao" -> "http://www.taobao.com") sites.keys.foreach{ i => print( "Key = " + i ) println(" Value = " + sites(i) )} } }
Realizacja powyższego kodu, wyjście jest:
$ scalac Test.scala $ scala Test Key = w3big Value = http://www.w3big.com Key = baidu Value = http://www.baidu.com Key = taobao Value = http://www.taobao.com
Sprawdź, czy podany klucz istnieje w mapie
Można użyć metodyMap.contains aby sprawdzić, czy obecność określonego klucza Map.Przykłady są następujące:
object Test { def main(args: Array[String]) { val sites = Map("w3big" -> "http://www.w3big.com", "baidu" -> "http://www.baidu.com", "taobao" -> "http://www.taobao.com") if( sites.contains( "w3big" )){ println("w3big 键存在,对应的值为 :" + sites("w3big")) }else{ println("w3big 键不存在") } if( sites.contains( "baidu" )){ println("baidu 键存在,对应的值为 :" + sites("baidu")) }else{ println("baidu 键不存在") } if( sites.contains( "google" )){ println("google 键存在,对应的值为 :" + sites("google")) }else{ println("google 键不存在") } } }
Realizacja powyższego kodu, wyjście jest:
$ scalac Test.scala $ scala Test w3big 键存在,对应的值为 :http://www.w3big.com baidu 键存在,对应的值为 :http://www.baidu.com google 键不存在
Metoda Scala Mapa
Poniższa tabela zawiera powszechnie stosowanych metod Scala Mapa:
Nie. | Sposób i opis |
---|---|
1 | def ++ (xs: MAP [( A, B)]): mapa [A, B] Zwraca nową mapę, Nowa mapa xs składu |
2 | def - (elem1: A, element2 : A, elems: A *): mapa [A, B] Zwraca nową mapę, wyjąć kluczyk do elem1, element2 lub innych elems. |
3 | def - (xs: GTO [A ]): mapa [A, B] Zwraca nową mapę, usuń xs obiekt odpowiadający klucz |
4 | def get (klucz: A): Opcja [B] Zwraca wartość określonego klucza |
5 | def iterator: Iterator [(A, B)] Utwórz nowy iterator, i wysyła parę klucz / wartość |
6 | def addstring (b: StringBuilder): StringBuilder MAP, wszystkie elementy podłączone do StringBuilder, mogą być dodawane do separatora |
7 | addstring def (b: StringBuilder, wrzesień : String): StringBuilder MAP, wszystkie elementy podłączone do StringBuilder, mogą być dodawane do separatora |
8 | def zastosowania (klawisz A): B Zwraca wartość określonego klucza, jeśli nie ma powrotu do domyślnej metody mapą |
9 | def clear (): Unit Wyczyść mapę |
10 | def clone (): mapa [A , B] Od jednego do drugiego się Mapa |
11 | def zawiera (klucz: A): Boolean Jeśli istnieje określony klucz Mapa, zwraca wartość true, w przeciwnym razie zwraca false. |
12 | def copyToArray (xs: Array [( A, B)]): Jednostka Zestaw kopii do tablicy |
13 | def count (t: ((A , B)) => Boolean): int Obliczyć liczbę elementów, które spełnia określone kryteria |
14 | def domyślny (klucz: A): B Domyślną wartością jest zdefiniowana Mapa powraca, gdy klucz nie jest obecny. |
15 | def upuść (n: int): mapa [A, B] Nowa kolekcja przed powrotem odrzutów n elementów |
16 | def dropRight (n: int): mapa [A, B] Powrót odrzucić ostatnie n elementów nowej kolekcji |
17 | def dropWhile (t: ((A , B)) => Boolean): mapa [A, B] Odrzuć elementem lewej do prawej, dopóki warunek nie jest spełniony p |
18 | def pusta: mapa [A, B ] Powrót tego samego rodzaju pustej mapie |
19 | def równa (czyli: dowolny): Boolean Jeśli te dwie rzeczy są równe Mapa (klucz / wartość są równe), zwraca true, false w przeciwnym wypadku |
20 | def istnieje (p: ((A , B)) => Boolean): Boolean Analizując warunki określone w element kolekcji istnieje |
21 | def filtrować (t: ((A , B)) => Boolean): mapa [A, B] Powrót do wszystkich zbiorów, które spełniają określone kryteria |
22 | def filterKeys (P: (A) => Boolean): mapa [A, B] Zwraca niezmienna Mapa spełniać określone kryteria |
23 | def find (t: ((A , B)) => Boolean): Opcja [(A, B)] Znalezienie pierwszego elementu w kolekcji, która spełnia określone kryteria |
24 | foreach def (f: ((A , B)) => katalogowa): Unit Wszystkie elementy funkcyjne na planie |
25 | def startowych: mapa [A, B ] Zwraca wszystkie elementy, z wyjątkiem ostatniego |
26 | def isEmpty: Boolean Wykrywanie, czy mapa jest pusty |
27 | def klawisze: iterowalny [A] Powrót wszystkich kluczowych / p> |
28 | def ostatnia: (A, B) Zwraca ostatni element |
29 | def max: (A, B) Znajdź maksymalną elementu |
30 | def min: (A, B) Znajdź najmniejszy element |
31 | def mkString: String Zbiór wszystkich elementów wyświetlacza jako ciąg |
32 | Produkt def: (A, B) Zwraca kolekcję elementów cyfrowych w działce. |
33 | def usunąć (klucz: A): Opcja [B] Usuwa określony klucz |
34 | def zachowują (P: (A, B) => Boolean): Map.this.type Jeżeli spełniają warunek zwraca true |
35 | Wielkość def: Int Zwraca liczbę elementów na mapie |
36 | Suma def: (A, B) Zwraca kolekcję wszystkich elementów cyfrowych |
37 | Ogon def: mapa [A, B ] Zwraca kolekcję innych pierwiastków, z wyjątkiem pierwszego elementu |
38 | def podjąć (n: int): mapa [A, B] Zwraca n pierwszych elementów |
39 | def takeRight (n: int): mapa [A, B] n elementów Powrót |
40 | def takeWhile (t: ((A , B)) => Boolean): mapa [A, B] Zwraca elementy określony warunek jest spełniony |
41 | def toArray: Array [(A, B)] Ustaw tablica transferu |
42 | def toBuffer [b>: A] : Bufor [B] Powrót bufora, zawierający wszystkie elementy mapy |
43 | def ToList: Lista [A] Powrót Lista zawiera wszystkie elementy mapy |
44 | def toSeq: seq [A] Powrót sekwencji, zawiera wszystkie elementy mapy |
45 | def toset: Ustaw [A] Powrót Zestaw zawierający wszystkie elementy mapy |
46 | def toString (): String Zwraca obiekt String |
Więcej sposobów, aby odnieść się do dokumentacji API