Scala——Scala中的集合;数组Array与集合类List的使用

Scala中集合

在Scala语言中,数组Array或者集合类(List,Set ,Map)分为可变集合和不可变集合2类

第一类:Array 和List

	不可变的类名称:Array和List
	可变的类名称:ArrayBuffer和ListBuffer

第二类:set和Map

	可变还是不可变名称都是set或map,变化的包的名称
	可变:mutable
		import scala.collection.mutable._
	不可变:immutable
    import scala.collection.immutable._
注意:scala默认使用不可变的集合类,自动已经导 不可变 的包

Array与ArrayBuffe的定义与使用

Array不可变数组
ArrayBuffer 可变数组

定义与使用

import scala.collection.mutable.ArrayBuffer

object ArrayDemo {
  def main(args: Array[String]): Unit = {
    //创建不可变数组,赋值
    val arr = Array(1,2,3,4,5)

    //获取数组中元素:使用下标,从0开始
    println(s"first element:${arr(0)}")
    println(s"lenght:${arr.length}")
    println(s"size:${arr.size}")

    //修改数组的值
    arr(0) = 55

    //循环数组元素
    for (item <- arr) println(item)

    //只是创建数组,不赋值
    var arr2 = new Array[Int](5)//数组长度是5,数据类型int

    //可变数组:类似于Java中List
    val buffer = new ArrayBuffer[Int]()

    //添加元素
    buffer += 11
    buffer.+=(22)
    println("=============================")
    for (item <- buffer) println(item)
    //修改
    buffer(0) = 111

    //添加一组元素 到 数组中
    buffer ++= Array(55,555)
    println("=============================")
    for (item <- buffer) println(item)

    //可变数组 转成 不可变数组
    var arr3: Array[Int] = buffer.toArray
    println("=============================")
    arr3.foreach(println)

    //将数组转成字符串
    println(arr3.mkString(",")) //111,22,55,555
    println(arr3.mkString("<",",",">"))// <111,22,55,555>

    //Scala数组可以存储各种类型
    val arr4: Array[Any] = Array(10,99.99,"laosun")
    val first:Any = arr4(0)
    //数据类型转换:父类 转成 子类 ,强制类型转换
    val intValue = first.asInstanceOf[Int]
    println(intValue)

  }
}

List与ListBuffer的定义与使用

List可变的集合
ListBuffer不可变的集合

定义与使用

package com.huadian.bigdata.collection

//可变的集合
import scala.collection.mutable.ListBuffer

object ListDemo {
  def main(args: Array[String]): Unit = {
    //创建一个List,不可变的集合
   val list: List[Int] =  List(1,2,3,4,5)

    //list组成:头+尾
    println(s"head:${list.head}")//一个元素
    println(s"tail${list.tail}")//是一个List

    //当List只有一个元素的时候,head为元素,tail是一个空的集合
    val list2 = List(1)
    println(s"head:${list2.head}")
    println(s"tail${list2.tail}")

    //list创建方式二:
    val list3 = 1::Nil ; //Nil.::(1), ::从右往左运算

    val list4 = 1::2::3::Nil //头插法
    println(list4) //1,2,3

    //创建可变的List
    val listBuffer = ListBuffer[Int]()
    //添加元素
    listBuffer +=1
    listBuffer +=2
    listBuffer +=3
    listBuffer ++=List(4,5,6)
    listBuffer +=(7,8,9)

    //可变的List转成不可变
    val list5 = listBuffer.toList
    println(list5.mkString(","))

    //判定List是否为空
    println(list5.isEmpty)

    //判定list是否存在某个元素
    println(list5.contains(9))
  }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无名一小卒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值