暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

scala要点总结2:数组、集合常用操作

海涛技术漫谈 2019-04-05
636


一: ArrayBuffer

1. 声明数组

  1. val a = ArrayBuffer("a","b")

  2. val b = ArrayBuffer\[String](2)

2. 获取元素

  1. val item = a(0)

  2. val item = a.take(1)

3. 尾部添加元素或多个元素

  1. a += "c"

  2. a += ("d", "e")

  3. a.append("f")

4. 尾部添加数组

  1. a ++= Array("f", "g")

5. 指定位置插入元素

  1. a.insert(0, 1)

6. 指定位置开始删除n个元素

  1. a.remove(2, 1)

7. 连接两个数组

  1. val c = a ++ b

  2. val c = ArrayBuffer.concat(a, b)

8. 去除末尾n个元素

  1. a.trimEnd(5)


二:List

PS : 默认的列表是不可变的,列表的元素不能通过赋值来更改, 所以对列表的操作都会产生新列表。 其次,列表表示一个链表,而数组是平的,类似ArrayList。

1. 声明

  1. val list = List(1, 2)

  2. val list2 = 1 :: 2 :: Nil

2. 获取

  1. val item = list(0)

  2. val list1 = list.take(1)

3. 头部添加元素

  1. -1 :: list

  2. -1 +: list

4. 尾部添加元素

  1. list :+ 3

5. 删除头部和尾部指定个数个元素

  1. list.drop(2)

  2. list.dropRight(2)

6. 删除指定位置上的元素

  1. list.dropWhile(s => list.indexOf(s) == 0)

7. 连接两个List

  1. list ++ list2

  2. list ::: list2

  3. List.concat(list, list2)


三:Set

1. 声明

  1. val set1 = Set(1, 2, 3)

  2. val set2 = Set[Int]()

2. 获取

  1. set1.take(1)

3. 添加元素

  1. val set3 = set1 + 4

4. 删除元素

  1. val set4 = set3 - 3

5. 连接

  1. val set5 = set3 ++ set4

6. 交、并集

  1. val set6 = set3.intersect(set4) val set6 = set3.&(set4)

  2. val set7 = set3.union(set4) val set7 = set3.|(set4)


四:Map

1. 声明

  1. val map1 = Map[Int, Int]()

  2. val map2 = Map(1 -> 1, 2 -> 2)

  3. val map3 = Map((3, 3), (4, 4))

2. 获取

  1. val value = map2.get(1)

3. 添加元素

  1. val map4 = map3 + (5 -> 5)

  2. val map5 = map4 + ((6, 6))

4. 删除

  1. val map6 = map5 - 5

5. 连接

  1. val map7 = map5 ++ map4

6. 遍历

  1. for (i <- map7.keys)

  2. println(i + ":" + map7(i))


五:Tuple

元组的元素个数目前有22的上限,超过后就得使用集合而不是元组了

1. 声明

  1. val t1= (1, "hello")

  2. val t2 = Tuple2(2, "world")

2. 获取

  1. val value = t1._1 // (注意下标从1开始)

3. 遍历

  1. t1.productIterator.foreach{i => println(i)}

  2. for (i <- 0 until t1.productArity)

  3. println(t1.productElement(i))

文章转载自海涛技术漫谈,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论