B22 - 016、列表List

初学耗时:0.5h

注:CSDN手机端暂不支持章节内链跳转,但外链可用,更好体验还请上电脑端。

一、列表List
  1.1  不可变List。
  1.2  可变List。



记忆词:

  可变List、不可变List

B22 - 999、大数据组件学习⑲ - Scala


ギ 舒适区ゾ || ♂ 累觉无爱 ♀





一、列表List

  1.1 ~ 不可变List。
  • import scala.collection.immutable._
    1.1.1 .  列表定义。

alt

  • head:返回列表第一个元素。
  • tail:返回一个列表,包含除了第一元素之外的其他元素。
  • isEmpty:在列表为空时返回true。
    1.1.2 .  list常用的操作符。
  • +: (elem: A): List[A] ,在列表的头部添加一个元素。
  • :: (x: A): List[A] ,在列表的头部添加一个元素。
  • :+ (elem: A): List[A] ,在列表的尾部添加一个元素。
  • ++[B](that: GenTraversableOnce[B]): List[B] ,从列表的尾部添加另外一个列表。
  • ::: (prefix: List[A]): List[A] ,在列表的头部添加另外一个列表。
package cn.zrk.collect
/**
 * 不可变List集合操作
 */
object ImmutListDemo {
  def main(args: Array[String]) {
    //创建一个不可变的集合
    val lst1 = List(1,2,3)
    //补充:另一种定义list方法
    val other_lst=2::Nil
    //获取集合的第一个元素
    val first=lst1.head
    //获取集合中除第一个元素外的其他元素集合,
    val tail=lst1.tail
    //补充:其中如果 List 中只有一个元素,那么它的 head 就是这个元素,它的 tail 就是 Nil;
    println(other_lst.head+"----"+other_lst.tail)
    //将0插入到lst1的前面生成一个新的List
    val lst2 = 0 :: lst1
    val lst3 = lst1.::(0)
    val lst4 = 0 +: lst1
    val lst5 = lst1.+:(0)
    
//将一个元素添加到lst1的后面产生一个新的集合
    val lst6 = lst1 :+ 3
    val lst0 = List(4,5,6)	
    //将2个list合并成一个新的List
    val lst7 = lst1 ++ lst0
    //将lst0插入到lst1前面生成一个新的集合
    val lst8 = lst1 ++: lst0
    //将lst0插入到lst1前面生成一个新的集合
    val lst9 = lst1.:::(lst0)

      }
}
  1.2 ~ 可变List。
  • import scala.collection.mutable. ListBuffer
package cn.zrk.collect
import scala.collection.mutable.ListBuffer

object MutListDemo extends App{
  //构建一个可变列表,初始有3个元素1,2,3
  val lst0 = ListBuffer[Int](1,2,3)
  //创建一个空的可变列表
  val lst1 = new ListBuffer[Int]
  //向lst1中追加元素,注意:没有生成新的集合
  lst1 += 4
  lst1.append(5)

  //将lst1中的元素追加到lst0中, 注意:没有生成新的集合
  lst0 ++= lst1

  //将lst0和lst1合并成一个新的ListBuffer 注意:生成了一个集合
  val lst2= lst0 ++ lst1

  //将元素追加到lst0的后面生成一个新的集合
  val lst3 = lst0 :+ 5

  //删除元素,注意:没有生成新的集合
  val lst4 = ListBuffer[Int](1,2,3,4,5)
  lst4 -= 5

  //删除一个集合列表,生成了一个新的集合
  val lst5=lst4--List(1,2)

  //把可变list 转换成不可变的list 直接加上toList
  val lst6=lst5.toList

  //把可变list 转变数组用toArray
  val lst7=lst5.toArray
}


宁卖现二,莫卖赊三。

- - - - - - - - - - - - - - - - - - - - - - - - - - - -



^ 至此,列表List完成。


- - - - - - - - - - - - - - - - - - - - - - - - - - - -


※ 世间诱惑何其多,坚定始终不动摇。

一般认为,好的软件应该:


A、速度快
B、正确实现要求的功能
C、程序简短
D、价格低廉

B
alt



宁卖现二,莫卖赊三。

- - - - - - - - - - - - - - - - - - - - - - - - - - - -


注:CSDN手机端暂不支持章节内链跳转,但外链可用,更好体验还请上电脑端。

我知道我的不足,我也知道你的挑剔,但我就是我,不一样的烟火,谢谢你的指指点点,造就了我的点点滴滴:)!



宁卖现二,莫卖赊三。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值