List 列表

List 代表元素顺序固定的不可变链表。

 

初始化

package main

object Test {

  def main(args: Array[String]): Unit = {

    val list1 = List(1, 2, 3);
    println(list1.getClass.getName); //scala.collection.immutable.$colon$colon
    println(list1);
    //List(1, 2, 3)


    val list2 = List(1 to 10: _*);
    println(list2.getClass.getName); //scala.collection.immutable.$colon$colon
    println(list2);
    //List(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)


    val list3 = List.empty;
    println(list3.getClass.getName); //scala.collection.immutable.Nil$
    println(list3);
    //List()


    val list4 = Nil;
    println(list4.getClass.getName); //scala.collection.immutable.Nil$
    println(list4);
    //List()
  }
}

 

:: 操作符 

列表定义了一个 :: 方法,用来增加一个元素到一个List的头部。

或者使用 :: 操作符生成列表,:: 也叫 cons操作符。它的功能是构造一个新的内存对象,包含操作符的两端的元素。

在使用它的时候,必须在表达式的最后增加一个列表,比如:Nil 或 List()。 这样表达式才知道是调用List的 :: 方法。

package main

object Test {

  def main(args: Array[String]): Unit = {

    val t = List(1, 2, 3);


    val list1 = 1 :: 2 :: 3 :: Nil;
    println(list1.getClass.getName); //scala.collection.immutable.$colon$colon
    println(list1);
    //List(1, 2, 3)


    val list2 = 1 :: 2 :: 3 :: List();
    println(list2.getClass.getName); //scala.collection.immutable.$colon$colon
    println(list2);
    //List(1, 2, 3)


    val list3 = t :: 5 :: 6 :: 7 :: Nil;
    println(list3.getClass.getName); //scala.collection.immutable.$colon$colon
    println(list3);
    //List(List(1, 2, 3), 5, 6, 7)

    println(list3.head); //List(1, 2, 3)


    val list4 = 7 :: 8 :: 9 :: t;
    println(list4);
    //List(7, 8, 9, 1, 2, 3)
    println(list4.head); //7
  }
}

 

::: 操作符

::: 用来将一个列表增加到另一个列表的头部。操作符左边的列表 增加 到右边的列表的头部。

package main

object Test {

  def main(args: Array[String]): Unit = {

    val t1 = List(1, 2, 3);
    val t2 = 5 :: 6 :: 7 :: 8 :: Nil;

    val list = t1 ::: t2;
    println(list);
    //List(1, 2, 3, 5, 6, 7, 8)

    println(list.head); //1


    println( t2 ::: t1 );
    //List(5, 6, 7, 8, 1, 2, 3)
  }
}

 

posted @ 2019-07-25 02:54  茗::流  阅读(93)  评论(0)    收藏  举报
如有雷同,纯属参考。如有侵犯你的版权,请联系我。