为了账号安全,请及时绑定邮箱和手机立即绑定

Scala入门与进阶(五)- Scala数组

标签:
Hadoop

5. Scala数组

1. 定长数组

scala> val a = new Array[String](5)
a: Array[String] = Array(null, null, null, null, null)

scala> val b = Array("a","b","c")
b: Array[String] = Array(a, b, c)

scala> b.length
res0: Int = 3scala> val b = Array(1,2,3)
b: Array[Int] = Array(1, 2, 3)

scala> b.sum
res2: Int = 6scala> b.max
res3: Int = 3scala> b.min
res4: Int = 1scala> b.mkString(",")
res5: String = 1,2,3scala> b.mkString("[",",","]")
res6: String = [1,2,3]

scala>

Array() 的源码

/** Creates an array with given elements.
*
* @param xs the elements to put in the array
* @return an array containing all elements from xs.
*/// Subject to a compiler optimization in Cleanup.// Array(e0, ..., en) is translated to { val a = new Array(3); a(i) = ei; a }def apply[T: ClassTag](xs: T*): Array[T] = {
val array = new Array[T](xs.length)
var i = 0for (x <- xs.iterator) { array(i) = x; i += 1 }
array
}

2. 变长数组

scala> val d = scala.collection.mutable.ArrayBuffer[Int]() //定义一个变上数组d: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer()

scala>

scala> d+=1 // 添加元素res15: d.type = ArrayBuffer(1)

scala> d+=2res16: d.type = ArrayBuffer(1, 2)

scala> d+=(3,4,5) // 添加多个元素res17: d.type = ArrayBuffer(1, 2, 3, 4, 5)

scala> d++=Array(6,7,8,9) // 添加数组res18: d.type = ArrayBuffer(1, 2, 3, 4, 5, 6, 7, 8, 9)

scala> d.insert(0,0) // 在指定位置添加元素scala> d.remove(1) // 删除指定位置的元素res20: Int = 1scala> d.remove(0,3) // 从指定位置开始删除多个元素scala> d.trimEnd(2) // 删除最后n个元素scala>

scala> for(ele<-d){ // 遍历数组-法1| print(ele+" ")
| }4 5 6 7scala>

scala> for(i <- 0 until d.length){ // 遍历数组-法2| print(d(i)+" ")
| }4 5 6 7scala>

scala> for(i <- (0 until d.length).reverse){ // 从后往前遍历| print(d(i)+" ")
| }7 6 5 4scala>

3. List

scala> Nil // 代表一个空的listres26: scala.collection.immutable.Nil.type = List()

scala> val l = List(1,2,3,4,5)
l: List[Int] = List(1, 2, 3, 4, 5)

scala> l.head // 一个list由head和tail组成,head是第一个元素,tail是剩下元素组成的listres27: Int = 1scala> l.tail
res28: List[Int] = List(2, 3, 4, 5)

scala> val l2 = 1 :: Nil // 使用::拼接一个新的listl2: List[Int] = List(1)

scala> val l3 = 2 :: l2
l3: List[Int] = List(2, 1)

scala> val l4 = 1 :: 2 :: 3 :: Nil
l4: List[Int] = List(1, 2, 3)

scala> val l5 = scala.collection.mutable.ListBuffer[Int]() // 变上的Listl5: scala.collection.mutable.ListBuffer[Int] = ListBuffer()

scala> l5+=2 //操作和之前的变长数组一样res29: l5.type = ListBuffer(2)

scala> println(l5)
ListBuffer(2)

4. Set

scala> val s = Set(1,2,3,3,4,5)
s: scala.collection.immutable.Set[Int] = Set(5, 1, 2, 3, 4)

scala> val s1 = scala.collection.mutable.Set[Int]()
s1: scala.collection.mutable.Set[Int] = Set()



作者:Meet相识_bfa5
链接:https://www.jianshu.com/p/811c23e05bde


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消