Latest web development tutorials

Scala Karte (map)

Scala Sammlungen Scala Sammlungen

Karte (Karte) ist eine Art von iterativen Schlüssel-Wert-Paare (Schlüssel / Wert) Struktur.

Alle Werte können durch einen Schlüssel abgerufen werden.

Karte der Schlüssel eindeutig ist.

Karte wird auch eine Hash-Tabelle (Hash-Tabellen) genannt.

Karte Es gibt zwei Arten von variabel und kann nicht geändert werden, es sei denn, dass die Variable Objekt, um es ohne veränderbare Objekte ändern können, kann es nicht.

Standardmäßig Scala unveränderlich Karte. Wenn Sie eine Variable Sammlung verwenden müssen, müssen Sie explizitimportieren scala.collection.mutable.Map Klasse einführen

In Scala können Sie variable und unveränderlich Karte, direkte Nutzung Karte unveränderlich, wandelbar Verwendung mutable.Map verwenden. Das folgende Beispiel demonstriert die Anwendung von unveränderlichen Karte:

// 空哈希表,键为字符串,值为整型
var A:Map[Char,Int] = Map()

// Map 键值对演示
val colors = Map("red" -> "#FF0000", "azure" -> "#F0FFFF")

Wenn Sie eine Karte zu definieren, müssen Sie die Art von Schlüssel-Wert-Paare zu definieren. Wenn Sie Schlüssel-Wert-Paare hinzufügen müssen, können Sie das Pluszeichen verwenden, wie folgt:

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

Grundfunktionen Karte

Scala Map Es gibt drei grundlegende Operationen:

Weg Beschreibung
Schlüssel Zurück Karte alle Schlüssel (key)
Werte Karte Liefert alle Werte (Wert)
isEmpty In der Karte ist leer Gibt true zurück

Beispiele

Das folgende Beispiel zeigt die Anwendung der oben genannten drei Grundmethoden:

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

Die Umsetzung des obigen Codes ist die Ausgabe:

$ scalac Test.scala 
$ scala Test
colors 中的键为 : Set(red, azure, peru)
colors 中的值为 : MapLike(#FF0000, #F0FFFF, #CD853F)
检测 colors 是否为空 : false
检测 nums 是否为空 : true

Karte Fusion

Sie können die Operator++ oder Karte verwenden. ++ ()Methode zwei Karte zu verbinden, entfernt doppelte Schlüssel , wenn Map Fusion. Die folgenden beiden Beispiele zeigen die kombinierte Karte:

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 )

   }
}

Die Umsetzung des obigen Codes ist die Ausgabe:

$ 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)

Karte von Ausgangs Schlüssel und Werte

Die folgende foreach-Schleife durch Ausgabe Karte von Schlüsseln und Werten:

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

Die Umsetzung des obigen Codes ist die Ausgabe:

$ 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

Überprüfen Sie, ob der angegebene Schlüssel in der Karte vorhanden ist

Sie könnenMap.contains Methode , um zu sehen , ob die Anwesenheit der angegebenen Key Map verwenden.Beispiele sind wie folgt:

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 键不存在")
      }
   }
}

Die Umsetzung des obigen Codes ist die Ausgabe:

$ scalac Test.scala 
$ scala Test
w3big 键存在,对应的值为 :http://www.w3big.com
baidu 键存在,对应的值为 :http://www.baidu.com
google 键不存在

Scala Map-Methode

In der folgenden Tabelle sind die häufigsten verwendeten Methoden Scala Karte:

Nein. Verfahren und Beschreibung
1

def ++ (xs: Map [( A, B)]): Karte [A, B]

Es gibt eine neue Karte, New Map xs Zusammensetzung

2

def - (elem1: A, elem2 : A, elems: A *): Karte [A, B]

Gibt einen neuen Map, entfernen Sie den Schlüssel zu elem1, elem2 oder andere elems.

3

def - (xs: GTO [A ]): Karte [A, B]

Gibt ein neues Map, entfernen xs entsprechenden Key-Objekt

4

erhalten def (Schlüssel: A): Option [B]

Gibt den Wert des angegebenen Schlüssels

5

def Iterator: Iterator [(A, B)]

Erstellen Sie einen neuen Iterator und gibt den Schlüssel / Wert-Paar

6

def addString (b: String): String

Die Karte alle Elemente an den String angebracht ist, kann zu einem Separator hinzugefügt werden

7

def addString (b: Stringbuilder, sep : String): String

Die Karte alle Elemente an den String angebracht ist, kann zu einem Separator hinzugefügt werden

8

gelten def (Schlüssel: A): B

Gibt den Wert des angegebenen Schlüssel, wenn es keine Rückkehr in die Standardmethode Karte ist

9

def clear (): Einheit

Karte löschen

10

def clone (): Map [A , B]

Von einem zum anderen Karte Karte

11

def enthält (Schlüssel: A): Boolean

Wenn es eine bestimmte Taste Karte ist, gibt true zurück, andernfalls false.

12

def copyToArray (xs: Array [( A, B)]): Einheit

Kopieren auf einem Array

13

zählen def (p: ((A , B)) => Boolean): Int

Berechnen Sie die Anzahl der Elemente, die die angegebenen Kriterien erfüllen gesetzt

14

def Standard (Schlüssel: A): B

Der Standardwert ist Karte zurückkehrt definiert, wenn der Schlüssel nicht vorhanden ist.

15

Drop - def (n: int):Karte [A, B]

Die neue Kollektion vor der Rückkehr verwirft n Elemente

16

def dropRight (n: int): Karte [A, B]

Zurück verwerfen die letzten n Elemente der neuen Kollektion

17

def dropWhile (p: ((A , B)) => Boolean): Karte [A, B]

Verwerfen Element links nach rechts, bis die Bedingung nicht erfüllt p

18

def leer: Map [A, B ]

Bringen Sie die gleiche Art von leeren Karte

19

def entspricht (also: Any): Boolean

Wenn die beiden gleich Karte (Schlüssel / Wert gleich sind), dann liefert true, false sonst

20

def existiert (p: ((A , B)) => Boolean): Boolean

Die Analyse der spezifischen Bedingungen in das Sammelelement vorhanden

21

Filter def (p: ((A , B)) => Boolean): Karte [A, B]

Zurück zu allen Sammlungen, die die angegebenen Kriterien erfüllen

22

def Verzögerung (p: (A) => Boolean): Karte [A, B]

Gibt unveränderliche Karte entsprechen den angegebenen Kriterien von

23

finden def (p: ((A , B)) => Boolean): Option [(A, B)]

Finden Sie das erste Element in der Sammlung, die die angegebenen Kriterien erfüllt

24

def foreach (f: ((A , B)) => Unit): Einheit

Alle Elemente der Funktion der eingestellten

25

def init: Map [A, B ]

Gibt alle Elemente, mit Ausnahme des letzten

26

def isEmpty: Boolean

Nachweis, ob die Karte leer ist

27

def Tasten: Iterable [A]

Liefert alle Schlüssel / p>

28

def zuletzt: (A, B)

Gibt das letzte Element

29

def max: (A, B)

Finden Sie die maximale Element

30

def min: (A, B)

Finden Sie das kleinste Element

31

def mkString: String

Die Menge aller Elemente des Displays als String

32

def Produkt: (A, B)

Gibt eine Sammlung von digitalen Elementen in der Handlung.

33

def entfernen (Schlüssel: A): Option [B]

Entfernt die angegebene Taste

34

behalten def (p: (A, B) => Boolean): Map.this.type

Wenn sie die Bedingung gibt wahr zurück, treffen

35

def Größe: Int

Gibt die Anzahl der Elemente in Map

36

def Summe: (A, B)

Gibt eine Sammlung aller Elemente des digitalen

37

def Schwanz: Map [A, B ]

Gibt eine Sammlung von anderen Elementen außer dem ersten Element

38

def nehmen (n: int): Karte [A, B]

Gibt die ersten n Elemente

39

def takeRight (n: int): Karte [A, B]

n Elemente Zurück

40

def Takewhile (p: ((A , B)) => Boolean): Karte [A, B]

Gibt Elemente angegebene Bedingung erfüllt ist

41

def toArray: Array [(A, B)]

Stellen Sie den Übertragungs Array

42

def toBuffer [B>: A] : Puffer [B]

Zurück Puffer, alle Elemente der Karte enthält,

43

def ToList: Liste [A]

Zurück Liste enthält alle Elemente der Karte

44

def toSeq: Seq [A]

Zurück Seq, enthält alle Kartenelemente

45

def Toset: Stellen Sie [A]

Zurück Set, alle Elemente der Karte enthält,

46

def toString (): String

Gibt ein String-Objekt

Weitere Möglichkeiten , um zu verweisen der API - Dokumentation

Scala Sammlungen Scala Sammlungen