Latest web development tutorials

Lista Scala (lista)

Lista Scala (lista)

colecciones Scala colecciones Scala

Lista Scala es similar a una matriz, que son el mismo tipo de todos los elementos, pero son diferentes: La lista es inmutable, el valor no se puede cambiar una vez que se definen, seguido de una lista con estructura recursiva (es decir, la estructura de la tabla de enlace) y una matriz No. .

Tipo de elemento T puede escribirse como una lista de lista de [T]. Por ejemplo, a continuación se muestra una lista de varios 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)
   )

Dos estructura de unidad básica de la lista esNil y ::

Ninguna también se puede expresar como una lista vacía.

Podemos escribir los ejemplos anteriores son los siguientes:

// 字符串列表
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 funcionamiento básico

Lista Scala tiene tres operaciones básicas:

  • head devuelve el primer elemento de la lista
  • tail devuelve una lista que contiene, además de los otros elementos del primer elemento
  • isEmpty devuelve verdadero si la lista está vacía

Para la lista Scala cualquier operación se puede utilizar para expresar las tres operaciones básicas. Ejemplos son los siguientes:

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

Aplicación del código anterior, la salida es:

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

Lista de conexiones

Se puede utilizar el operador::: o Lista. :: :()MétodoList.concat ()Método o para conectar dos o más listas. Ejemplos son los siguientes:

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  )
      

   }
}

Aplicación del código anterior, la salida es:

$ 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 utilizar el método List.fill () para crear un número determinado de repeticiones de una 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  )
   }
}

Aplicación del código anterior, la salida es:

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

método List.tabulate () se utiliza para crear la lista por la función dada.

El primer argumento es el número de elementos, que puede ser de dos dimensiones, el segundo parámetro para la función especificada, que calcular los resultados por la especificación de la función y devuelve el valor insertado en la lista, el valor inicial es 0, los ejemplos son los siguientes:

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

Aplicación del código anterior, la salida es:

$ 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

secuencia List.reverse para la lista invertida, los ejemplos son los siguientes:

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

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

Aplicación del código anterior, la salida es:

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

métodos comunes Lista Scala

En la siguiente tabla se enumeran los métodos comunes Lista Scala:

No. Método y Descripción
1

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

Añadir a la lista de pre-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): Listado [A]

En el principio de la lista para añadir elementos

3

def :: :( prefijo: Listado [A ]): Listado [A]

En el principio de la lista para agregar el elemento de lista especificada

4

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

Después de copiar la lista para añadir 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

Añadir todos los elementos de la lista para StringBuilder

6

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

Añadir todos los elementos de la lista para StringBuilder, y especificar el delimitador

7

aplicar def (n: Int): Un

Obtener una lista de elementos de índice

8

def contiene (elem: Cualquier): Boolean

Detectar si la lista contiene el elemento especificado

9

def copyToArray (xs: Array [A ], iniciar: Int, len: Int): Unidad

Copia los elementos de la lista en una matriz.

10

def distinta: Listado [A]

Eliminar los elementos duplicados de la lista, y devuelve una nueva lista

11

def caer (n: Int): Listado [A]

Desechar los primeros n elementos, y devuelve una nueva lista

12

def dropRight (n: Int): Listado [A]

Desechar los últimos n elementos, y devuelve una nueva lista

13

def dropWhile (p: (A) => Boolean): Listado [A]

elemento de descarte de izquierda a derecha, hasta que la condición no se cumple p

14

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

La detección de si la lista al final de la secuencia especificada

15

def es igual (que: Cualquier): Boolean

Determinar si la misma

16

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

El análisis de las condiciones especificadas en la lista de elementos existe.

L a determinar si hay un elemento:

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

def del filtro (P: (A) => Boolean): Listado [A]

Todos los elementos de símbolos de salida especificadas de condiciones.

La longitud del elemento de filtro 3:

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

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

La detección de todos los elementos.

Por ejemplo: para determinar si todos los elementos de la "H" al principio:

Scala> l.forall (s => s.startsWith ( "H")) RES10: Boolean = false
19

foreach def (f: (A) => Unidad): Unidad

Todos los elementos de la función a la lista

20

cabeza def: Un

Obtener el primer elemento de la lista

21

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

Encontrar la ubicación de la primera aparición del elemento de la ubicación especificada de

22

def init: Listado [A]

Devuelve todos los elementos, excepto el último

23

def intersectar (que: Sec [A ]): Listado [A]

Cálculo de una pluralidad de la intersección de conjuntos

24

def estaVacia: Boolean

Detectar si la lista está vacía

25

def iterador: Iterator [A]

Crear un nuevo iterador para recorrer los elementos

26

def última: Un

Devuelve el último elemento

27

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

En la posición final ubicación especificada empezar a buscar la última ocurrencia del elemento

28

longitud def: Int

Volver a la longitud de la lista

29

def mapa [B] (f: (A) => B): Listado [B]

A través de un método dado volverá a calcular todos los elementos

30

def max: Un

Encontrar el elemento máximo

31

min def: Un

Encontrar el elemento más pequeño

32

def mkString: String

Mostrar una lista de todos los elementos como una cadena

33

def mkString (SEP: String): Cadena

Los separadores se mostrará una lista de todos los elementos como una cadena

34

def inversa: Listado [A]

lista inversa

35

def ordenada [B>: A] : Listado [A]

Clasificando

36

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

Detectar si la lista contiene la secuencia especificada en la ubicación especificada

37

def suma: Un

Cálculo y colección de elementos

38

cola def: Listado [A]

Devuelve todos los elementos, excepto el primero

39

def tome (n: Int): Listado [A]

La extracción de los primeros n elementos de la lista

40

def takeRight (n: Int): Listado [A]

n elementos de la lista extrajeron

41

def toArray: Array [A]

Lista a un array

42

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

búfer de reserva contiene una lista de todos los elementos

43

def tomap [T, T]: Mapa [T, T]

Lista convierte Mapa

44

def toSeq: SEQ [A]

Lista convertir Sec

45

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

Conjunto lista convertido

46

toString def (): String

Convertido a una lista de cadenas

Más formas para referirse a la documentación de la API

colecciones Scala colecciones Scala