Latest web development tutorials

Scala Map (mapa)

zbiory Scala zbiory Scala

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

zbiory Scala zbiory Scala