Scala中List使用

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hguo11/article/details/81585158

总共分为List和ListBuffer,这里的操作参数很多,很难说的完整,这里就说几个常用的。

List

  • 创建List
scala> val a=List(1,2,3)
a: List[Int] = List(1, 2, 3)
  • 末端加元素
scala> a:+(4)
res47: List[Int] = List(1, 2, 3, 4)

或者

scala> a.:+(5)
res49: List[Int] = List(1, 2, 3, 5)
  • 首端加元素
scala> a.+:(0)
res51: List[Int] = List(0, 1, 2, 3)
  • 合并List
scala> val b=List(4,5,6)
b: List[Int] = List(4, 5, 6)

scala> a:::b
res54: List[Int] = List(1, 2, 3, 4, 5, 6)

或者

scala> a++:b
res55: List[Int] = List(1, 2, 3, 4, 5, 6)
  • 删除元素

删除首端两个元素

scala> a.drop(2)
res63: List[Int] = List(3)

删除尾端两个元素

scala> a.dropRight(2)
res61: List[Int] = List(1)
  • 排序
scala> b.sorted(Ordering.Int.reverse)
res66: List[Int] = List(6, 5, 4, 2, 1)

scala> b.sorted
res67: List[Int] = List(1, 2, 4, 5, 6)

scala> b.sorted.reverse
res68: List[Int] = List(6, 5, 4, 2, 1)

scala> b.sortBy(d=>d)
res69: List[Int] = List(1, 2, 4, 5, 6)

scala> b.sortBy(d=>d).reverse
res72: List[Int] = List(6, 5, 4, 2, 1)

scala> b.sortWith(_<_)
res73: List[Int] = List(1, 2, 4, 5, 6)

scala> b.sortWith(_>_)
res74: List[Int] = List(6, 5, 4, 2, 1)

scala>

ListBuffer

ListBuffer相比较可能较为灵活一些,主要的一些操作如下:

  • 创建Listbuffer
scala> import scala.collection.mutable.ListBuffer
import scala.collection.mutable.ListBuffer

scala> val a=ListBuffer(1,2,3)
a: scala.collection.mutable.ListBuffer[Int] = ListBuffer(1, 2, 3)
  • 尾端添加元素
scala> a+=4
res75: a.type = ListBuffer(1, 2, 3, 4)
  • 首端加元素
scala> 4+:a
res77: scala.collection.mutable.ListBuffer[Int] = ListBuffer(4, 1, 2, 3, 4, 4, 5, 6)
  • 合并list
scala> a++=List(4,5,6)
res76: a.type = ListBuffer(1, 2, 3, 4, 4, 5, 6)
  • 删除元素
scala> a.drop(2)
res82: scala.collection.mutable.ListBuffer[Int] = ListBuffer(3, 4, 4, 5, 6)

scala> a.dropRight(2)
res83: scala.collection.mutable.ListBuffer[Int] = ListBuffer(1, 2, 3, 4, 4)

scala>
  • 变成list
scala> a.toList
res85: List[Int] = List(1, 2, 3, 4, 4, 5, 6)

PS:上面的ListBuffer a 中用到的++=中有=的话,就是对a里面的元素进行增加或减少元素,因为有了=。而List a中的一些操作如.+: 是会显示添加或减小元素的结果,但对原List a里面的元素是没影响的。
其实说到底好像没有啥区别,他们基本的操作都是一样的。只是Buffer的操作可能更高校一些,可以便捷的删除以及插入。

猜你喜欢

转载自blog.csdn.net/hguo11/article/details/81585158