Latest web development tutorials

Lista Scala (lista)

Lista Scala (lista)

coleções Scala coleções Scala

lista Scala é semelhante a uma matriz, que são do mesmo tipo de todos os elementos, mas que são diferentes: A lista é imutável, o valor não pode ser alterado uma vez que eles são definidos, seguida por uma lista com estrutura recursiva (isto é, a estrutura da tabela de ligação) e uma matriz Não. .

tipo de elemento T pode ser escrito como uma lista de Lista [T]. Por exemplo, a seguir está uma lista de vários tipos:

// 字符串列表
val site: List[String] = List("w3big", "Google", "Baidu")

// 整型列表
val nums: List[Int] = List(1, 2, 3, 4)

// 空列表
val empty: List[Nothing] = List()

// 二维列表
val dim: List[List[Int]] =
   List(
      List(1, 0, 0),
      List(0, 1, 0),
      List(0, 0, 1)
   )

Dois estrutura de unidade básica da lista éNil e ::

Nil também pode ser expressa como uma lista vazia.

Nós podemos escrever os exemplos acima são as seguintes:

// 字符串列表
val site = "w3big" :: ("Google" :: ("Baidu" :: Nil))

// 整型列表
val nums = 1 :: (2 :: (3 :: (4 :: Nil)))

// 空列表
val empty = Nil

// 二维列表
val dim = (1 :: (0 :: (0 :: Nil))) ::
          (0 :: (1 :: (0 :: Nil))) ::
          (0 :: (0 :: (1 :: Nil))) :: Nil

Lista de operação básico

lista Scala tem três operações básicas:

  • head retorna o primeiro elemento da lista
  • tail retorna uma lista que contém, para além dos outros elementos do primeiro elemento
  • isEmpty retorna true se a lista estiver vazia

Para lista Scala qualquer operação pode ser usado para expressar as três operações básicas. Exemplos são os seguintes:

object Test {
   def main(args: Array[String]) {
      val site = "w3big" :: ("Google" :: ("Baidu" :: Nil))
      val nums = Nil

      println( "第一网站是 : " + site.head )
      println( "最后一个网站是 : " + site.tail )
      println( "查看列表 site 是否为空 : " + site.isEmpty )
      println( "查看 nums 是否为空 : " + nums.isEmpty )
   }
}

Implementação do código acima, a saída é:

$ vim Test.scala 
$ scala Test.scala 
第一网站是 : w3big
最后一个网站是 : List(Google, Baidu)
查看列表 site 是否为空 : false
查看 nums 是否为空 : true

Lista Connection

Você pode usar o::: operador ou List. :: :()MétodoList.concat ()Método ou para ligar duas ou mais listas. Exemplos são os seguintes:

object Test {
   def main(args: Array[String]) {
      val site1 = "w3big" :: ("Google" :: ("Baidu" :: Nil))
      val site2 = "Facebook" :: ("Taobao" :: Nil)

      // 使用 ::: 运算符
      var fruit = site1 ::: site2
      println( "site1 ::: site2 : " + fruit )
      
      // 使用 Set.:::() 方法
      fruit = site1.:::(site2)
      println( "site1.:::(site2) : " + fruit )

      // 使用 concat 方法
      fruit = List.concat(site1, site2)
      println( "List.concat(site1, site2) : " + fruit  )
      

   }
}

Implementação do código acima, a saída é:

$ vim Test.scala 
$ scala Test.scala 
site1 ::: site2 : List(w3big, Google, Baidu, Facebook, Taobao)
site1.:::(site2) : List(Facebook, Taobao, w3big, Google, Baidu)
List.concat(site1, site2) : List(w3big, Google, Baidu, Facebook, Taobao)

List.fill ()

Podemos usar o método List.fill () para criar um determinado número de repetições de uma lista de elementos:

object Test {
   def main(args: Array[String]) {
      val site = List.fill(3)("w3big") // 重复 w3big 3次
      println( "site : " + site  )

      val num = List.fill(10)(2)         // 重复元素 2, 10 次
      println( "num : " + num  )
   }
}

Implementação do código acima, a saída é:

$ vim Test.scala 
$ scala Test.scala 
site : List(w3big, w3big, w3big)
num : List(2, 2, 2, 2, 2, 2, 2, 2, 2, 2)

List.tabulate ()

List.tabulate () é usado para criar a lista, a função dada.

O primeiro argumento é o número de elementos, que podem ser bi-dimensional, o segundo parâmetro para a função especificada, calcula-se os resultados por especificando a função e devolve o valor inserido na lista, o valor inicial é 0, os exemplos são os seguintes:

object Test {
   def main(args: Array[String]) {
      // 通过给定的函数创建 5 个元素
      val squares = List.tabulate(6)(n => n * n)
      println( "一维 : " + squares  )

      // 创建二维列表
      val mul = List.tabulate( 4,5 )( _ * _ )      
      println( "多维 : " + mul  )
   }
}

Implementação do código acima, a saída é:

$ vim Test.scala 
$ scala Test.scala 
一维 : List(0, 1, 4, 9, 16, 25)
多维 : List(List(0, 0, 0, 0, 0), List(0, 1, 2, 3, 4), List(0, 2, 4, 6, 8), List(0, 3, 6, 9, 12))

List.reverse

List.reverse sequência para arquivo invertido, os exemplos são os seguintes:

object Test {
   def main(args: Array[String]) {
      val site = "w3big" :: ("Google" :: ("Baidu" :: Nil))
      println( "site 反转前 : " + site )

      println( "site 反转前 : " + site.reverse )
   }
}

Implementação do código acima, a saída é:

$ vim Test.scala 
$ scala Test.scala 
site 反转前 : List(w3big, Google, Baidu)
site 反转前 : List(Baidu, Google, w3big)

Lista Scala métodos comuns

A tabela a seguir lista os métodos comuns Lista Scala:

Não. Método e Descrição
1

def + :( elem: A): Lista [A]

Adicionar à lista de pré-elementos

scala> val x = List(1)
x: List[Int] = List(1)

scala> val y = 2 +: x
y: List[Int] = List(2, 1)

scala> println(x)
List(1)
2

def: :( x: A): Lista [A]

No início da lista para adicionar elementos

3

def :: :( prefixo: Lista [A ]): Lista [A]

No início da lista para adicionar o elemento lista especificada

4

def: + (elem: A) : Lista [A]

Depois de copiar a lista para adicionar elementos.

scala> val a = List(1)
a: List[Int] = List(1)

scala> val b = a :+ 2
b: List[Int] = List(1, 2)

scala> println(a)
List(1)
5

def addString (b: StringBuilder): StringBuilder

Adicione todos os elementos da lista para StringBuilder

6

addString def (b: StringBuilder, setembro : String): StringBuilder

Adicione todos os elementos da lista para StringBuilder, e especificar o delimitador

7

def aplicar (n: int): A

Obter uma lista de elementos de índice

8

def contém (elem: Qualquer): booleano

Detectar se a lista contém o elemento especificado

9

def copyToArray (xs: Array [A ], começar: Int, len: Int): Unidade

Copia os elementos da lista em uma matriz.

10

DEF distinta: Lista [A]

Remover elementos duplicados da lista, e retorna uma nova lista

11

def cair (n: int): Lista [A]

Rejeitar os primeiros n elementos, e retorna uma nova lista

12

def dropRight (n: int): Lista [A]

Descarte os últimos n elementos, e retorna uma nova lista

13

DEF dropWhile (p: (A) => booleano): Lista [A]

elemento de descarte esquerda para a direita, até que a condição não for satisfeita p

14

def endsWith [B] (que: Seq [B]): Boolean

Detectar se a lista no fim da sequência especificada

15

def equals (que: Qualquer): booleano

Determinar se o mesmo

16

def existe (p: (A) => Boolean): Boolean

Analisando as condições especificadas na lista de elementos existe.

G determinar se existe um elemento:

scala> l.exists(s => s == "Hah")
res7: Boolean = true
17

def filtrar (p: (A) => Boolean): Lista [A]

Todos os elementos de símbolos de saída especificado condição.

O comprimento do elemento de filtro 3:

scala> l.filter(s => s.length == 3)
res8: List[String] = List(Hah, WOW)
18

def forall (p: (A) => Boolean): Boolean

Detecção de todos os elementos.

Por exemplo: para determinar se todos os elementos de "H" no início:

scala> l.forall (s => s.startsWith ( "H")) res10: Boolean = false
19

foreach def (f: (A) => Unit): Unidade

Todos os elementos da função à lista

20

cabeça def: A

Obter o primeiro elemento da lista

21

def indexOf (elem: A, a partir de : int): int

Localizar a posição da primeira ocorrência do elemento a partir do local especificado de

22

o init def: Lista [A]

Retorna todos os elementos, exceto o último

23

DEF cruzam (que: SEQ [A ]): Lista [A]

Cálculo de uma pluralidade de conjuntos de intersecção

24

def isEmpty: Boolean

Detectar se a lista estiver vazia

25

def iterator: Iterator [A]

Criar um novo iterador para percorrer os elementos

26

def última: Um

Retorna o último elemento

27

def lastIndexOf (elem: A, final : int): int

Na posição final, localização especificada começar a procurar a última ocorrência do elemento

28

comprimento def: Int

Voltar para o comprimento lista

29

DEF mapear [B] (f: (A) => B): Lista [B]

Através de um determinado método irá recalcular todos os elementos

30

def máx: A

Localizar o elemento máximo

31

min DEF: Um

Encontre o menor elemento

32

def mkString: String

Apresentar uma lista de todos os elementos como uma string

33

def mkString (sep: String): Cordas

Separadores irá exibir uma lista de todos os elementos como uma string

34

def reversa: Lista [A]

lista reversa

35

DEF ordenada [B>: A] : Lista [A]

lista de Triagem

36

def startsWith [B] (que: Seq [B], offset: int): Boolean

Detectar se a lista contém a sequência especificada no local especificado

37

soma def: A

Cálculo e recolha de elementos

38

tail def: Lista [A]

Retorna todos os elementos, exceto o primeiro

39

def tomar (n: int): Lista [A]

Extraindo os primeiros n elementos da lista

40

def takeRight (n: int): Lista [A]

n elementos lista extraída

41

def toArray: Array [A]

Lista para uma matriz

42

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

buffer de fundo contém uma lista de todos os elementos

43

def toMap [T, U]: Mapa [T, U]

Lista convertido Mapa

44

def toSeq: Seq [A]

Lista converter Seq

45

def Toset [B>: A] : Ajuste [B]

Set List converso

46

toString def (): String

Convertida a uma lista de cadeia

Mais maneiras para se referir a documentação da API

coleções Scala coleções Scala