a25_scala Seq 集合(List)

scala outline

scala outline

scala 不可变List 创建 访问

  1. Scala 中的 List 和 Java List 不一样,在 Java 中 List 是一个接口,真正存放数据是 ArrayList,而 Scala 的 List 可以直接存放数据,List 属于序列 Seq(特质)的子类
  2. 默认情况下 Scala 的 List 是不可变的
    def main(args: Array[String]): Unit = {
    // 创建List集合,因为List是抽象的,只能通过apply方式创建
    val list: List[Int] = List(1, 2, 3, 4)
    
    // 访问方式 1
    list.foreach((x: Int) => {
      print(x + " ") // 输出 1 2 3 4
    })

    // 访问方式 2
    val it: Iterator[Int] = list.iterator
    while (it.hasNext){
      print(it.next()+" ") // 输出 1 2 3 4
    }

    //获取集合中的某一个元素
    println(list(1))
  }

scala 向不可变List中添加元素

  • :+ 和 +:
  def main(args: Array[String]): Unit = {
    // 通过 :+ 和 +: 给 list 追加元素(list1本身的集合并没有变化)
    var list1 = List(1, 2, 3, "abc")
    val list2 = list1.:+(4)
    // val list2 = list1 :+ 4
    println(list2) // 输出 List(1, 2, 3, abc, 4)
    val list3 = list1.+:(10)
    println(list3) // 输出 List(10, 1, 2, 3, abc)
  }
  • ::和:::
  1. 符号::表示向集合中添加元素
  2. 空集合怎么表示
// 方式1 
List()
// 方式2
Nil
  def main(args: Array[String]): Unit = {
    val list4 = List(1, 2, 3, "abc")
    // 表示向空集合中依次添加以下元素
    val list5 = 4 :: 5 :: 6 :: list4 :: Nil
    println("list5=" + list5)  // 输出 list5=List(4, 5, 6, List(1, 2, 3, abc))
  } 
  • :::

作用:扁平化

def main(args: Array[String]): Unit = {
    val list1: List[Int] = List(1, 2, 3, 4)
    val list2: List[Int] = List(5, 6)
    val newList0: List[Any] = list2.::(list1)
    println(newList0) // 输出 List(List(1, 2, 3, 4), 5, 6)
    // 扁平化 List(1, 2, 3, 4)
    val newList1: List[Int] = list1 ::: list2
    println(newList1) // 输出 List(1, 2, 3, 4, 5, 6)
  }

scala 可变List 创建 访问

    // 创建list
    val list1: ListBuffer[Int] = ListBuffer(1, 2, 3)
    
    // 访问方式1
    list1.foreach((x: Int) => {
      print(x + " ")
    })
    
    // 访问方式2
    val it: Iterator[Int] = list1.iterator
    while (it.hasNext) {
      print(it.next + " ")
    }

  }

建议

建议:在操作集合的时候,不可变集合的增删改查变用符号,可变集合的增删改查变用方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
06-08

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值