首页 > 其他 > 详细

list

时间:2019-10-10 18:40:19      阅读:74      评论:0      收藏:0      [点我收藏+]

构造列表的两个基本单位是 Nil 和 ::

Nil 也可以表示为一个空列表

1. 字符串列表

// val site:List[String]=List("runoob","google","baidu")

val site="runoob"::("google"::("baidu":: Nil))



site: List[java.lang.String] = List("runoob", "google", "baidu")

  

2. 整形列表

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

val nums=1::(2::(3::(4::Nil)))


nums: List[Int] = List(1, 2, 3, 4)

  

3. 空列表

// val empty:List[Nothing]=List()

val empty=Nil

empty: scala.collection.immutable.Nil.type = List()

  

4. 二维列表

/ val dim:List[List[Int]]=List(
//   List(1,0,0),
//   List(0,1,0),
//   List(0,0,1)


// )

val dim=(1::(0::(0::Nil)))::
         (0::(1::(0::Nil)))::
         (0::(1::(0::Nil)))::Nil




dim: List[List[Int]] = List(
  List(1, 0, 0),
  List(0, 1, 0),
  List(0, 1, 0)
)

  

5. head 返回列表第一个元素,

   tail 返回一个列表,包含除了第一元素之外的其他元素

   isEmpty 在列表为空时返回true

object Test{
 def main(args:Array[String]){
    val  site="runoob"::("google"::("baidu":: Nil))
    val nums =Nil
     println( "第一网站是 : " + site.head )
     println( "最后一个网站是 : " + site.tail )
     println( "查看列表 site 是否为空 : " + site.isEmpty )
     println( "查看 nums 是否为空 : " + nums.isEmpty )

   
}
}
Test.main(Array())


第一网站是 : runoob
最后一个网站是 : List(google, baidu)
查看列表 site 是否为空 : false
查看 nums 是否为空 : true
defined object Test

  

6.连接列表 ::: 或 List.:::() 或 List.concat()

object Test{
   def main(args:Array[String]){
      val site1 = "Runoob" :: ("Google" :: ("Baidu" :: Nil))
      val site2 = "Facebook" :: ("Taobao" :: Nil)
      //使用:::
      var fruit=site1:::site2
      println( "site1 ::: site2 : " + fruit )
   
     //使用List.:::()
     fruit=site1.:::(site2)
     println( "site1.:::(site2) : " + fruit )
   
    //使用List.concat()
    fruit=List.concat(site1,site2)
    println( "List.concat(site1, site2) : " + fruit  )
}
}
Test.main(Array())

site1 ::: site2 : List(Runoob, Google, Baidu, Facebook, Taobao)
site1.:::(site2) : List(Facebook, Taobao, Runoob, Google, Baidu)
List.concat(site1, site2) : List(Runoob, Google, Baidu, Facebook, Taobao)
defined object Test

  

7. List.fill() 指定重复数量的元素列表

object Test{
   def main(args:Array[String]){

    val site=List.fill(3)("google")
    println("site:"+site)
    
    val nums=List.fill(10)(2)
    println("nums:"+nums)
}}
Test.main(Array())


site:List(google, google, google)
nums:List(2, 2, 2, 2, 2, 2, 2, 2, 2, 2)
defined object Test

  

8. List.tabulate() 方法是通过给定的函数来创建列表

    第一个参数为元素的数量,第二个参数为指定的函数

object Test {
   def main(args: Array[String]) {
   
       val squares=List.tabulate(6)(n=>n*n)
       println("一维:"+squares)


       val mul=List.tabulate(4,5)(_*_)
       println("多维"+mul)


}}
Test.main(Array())


一维: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))
defined object Test

  

list

原文:https://www.cnblogs.com/hapyygril/p/11649674.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!