zoukankan      html  css  js  c++  java
  • Scala 学习(四) 集合之List

    一,简介

    二,不可变List

    三,可变ListBuffer

    正文

    一,简介

      Scala 列表类似于数组,它们所有元素的类型都相同,但是它们也有所不同:列表是不可变的,值一旦被定义了就不能改变,其次列表 具有递归的结构(也就是链接表结构)而数组不是。而ListBuffer元素和长度都是可变的。该多用List而不是Array

    二,不可变List

      这里的不可变,内容后长度都不可变

    object ListDemo {
    
    
        def main(args: Array[String]): Unit = {
    
            var li = List(1, 3, 4)
    
            // 在原list上前面添加一个元素,形成一个新的list
            var li2 = 0 :: li
            print(li2.toBuffer+"
    ")  // ArrayBuffer(0, 1, 3, 4)
            var li3 = li.::(5)
            print(li3.toBuffer+"
    ")  // ArrayBuffer(5, 1, 3, 4)
            var li4 = 6 +: li
            print(li4.toBuffer+"
    ")  // ArrayBuffer(6, 1, 3, 4)
    
            // 在list后面添加一个新的元素,形成一个新的list
            var li5 = li :+ 3
            print(li5.toBuffer+"
    ")  // ArrayBuffer(1, 3, 4, 3)
    
            // 两个list相加
            var li6 = li2 ++ li3
            print(li6.toBuffer+"
    ")  // ArrayBuffer(0, 1, 3, 4, 5, 1, 3, 4)
            var li7 = li2 ++: li3
            print(li7.toBuffer+"
    ")  // ArrayBuffer(0, 1, 3, 4, 5, 1, 3, 4)
    
            // 在前面添加一个list,形成一个新的list
            var li8 = li.:::(li2)
            print(li8.toBuffer+"
    ")  // ArrayBuffer(0, 1, 3, 4, 1, 3, 4)
    
    
        }
    
    }

    三,可变ListBuffer

      长度和内容都可变

    import scala.collection.mutable.ListBuffer
    
    object ListDemo2 {
    
        def main(args: Array[String]): Unit = {
    
            val li = ListBuffer[String]()
    
            // 添加
            li.append("a")
            li += "c"
    
            var li2 = ListBuffer("l", "m")
            // 追到到li中,并没有生成新的list
            li ++= li2
    
            // 生成了新的li
            var li3 = li ++ li2
            
            // 后面追加,形成了新的li
            var li4 = li :+ "d"
    
        }
    
    }
  • 相关阅读:
    学生信息表
    水仙花数
    DirectAccess完整配置
    这些惹人嫌系统安装方法
    求解方程式
    AD DS的维护之备份还原
    简单的switch语句
    linux_常用命令
    小小问题
    frameset和frame
  • 原文地址:https://www.cnblogs.com/tashanzhishi/p/10955043.html
Copyright © 2011-2022 走看看