欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報(bào)激活碼778899分享:開發(fā)語言 Scala之List

柚子快報(bào)激活碼778899分享:開發(fā)語言 Scala之List

http://yzkb.51969.com/

列表

不可變列表(List)

在Scala中,通過List來定義不可變列表,需要注意的是,List本身是一個(gè)抽象類,所以并不能直接使用List來構(gòu)建對(duì)象,需要使用它的伴生對(duì)象來構(gòu)建 package com.fesco.list

import scala.::

object ListDemo {

def main(args: Array[String]): Unit = {

// 方式一

val list = List[Int](2, 3, 4, 5, 6)

println(list)

val list2 = List.apply(2, 3, 4, 5, 6)

println(list2)

// 方式二:

// :: 在list之前來追加數(shù)據(jù)

val list3 = 1 :: list

println(list3)

// 方式三:

// Nil是List的子類,表示一個(gè)空列表

val list4 = Nil

println(list4)

// 方式四:

val list5 = 1 :: 2 :: 3 :: 4 :: Nil

println(list5)

}

}

List被sealed修飾,說明List是一個(gè)密封類,那么就意味著List的子類必須和List處在同一個(gè)scala文件中,即List無法直接擴(kuò)展 基本操作 package com.fesco.list

object ListDemo2 {

def main(args: Array[String]): Unit = {

val list = List[Int](3, 4, 8, 1, 5, 9, 7)

// 獲取指定下標(biāo)位置上的元素

// 底層實(shí)際上是調(diào)用了父特質(zhì)LinearSeq中的apply函數(shù)

println(list(2))

// 等價(jià)于

println(list.apply(2))

// 獲取第一個(gè)元素

// println(list(0))

// 等價(jià)于

println(list.head)

// 獲取最后一個(gè)元素

println(list.last)

// 追加一個(gè)元素 - 產(chǎn)生一個(gè)新的列表

// val r1 = list :+ 6

val r1 = list.:+(6)

println(r1)

// 在頭部追加元素

// 從右向左計(jì)算

val r2 = 1 +: list

// val r2 = list.+:(1)

// 當(dāng)出現(xiàn):的時(shí)候,:對(duì)著誰就從誰開始計(jì)算

// 如果兩邊都有:,那么從右向左計(jì)算

// 錯(cuò)誤的寫法:list +: 1

println(r2)

// 或者

// val r3 = list.::(1)

val r3 = 1 :: list

// list :: 1

println(r3)

// 構(gòu)建了列表

// 從右到左:先構(gòu)建空列表List(),然后頭部拆入5,在插入4

val r4 = 1 :: 2 :: 3 :: 4 :: 5 :: List()

// 等價(jià)于

val r5 = 1 :: 2 :: 3 :: 4 :: 5 :: Nil

println(r4)

println(r5)

}

}

列表的合并 package com.fesco.list

object ListDemo3 {

def main(args: Array[String]): Unit = {

val list1 = List[Int](1, 2, 3, 4)

val list2 = List[Int](5, 6, 7, 8)

// 合并列表

val r1 = list1 ++ list2

println(r1)

val r2 = list1 ++: list2

println(r2)

val r3 = list1 :++ list2

println(r3)

val r4 = list1.concat(list2)

println(r4)

val r5 = list1 ::: list2

println(r5)

}

}

可變列表(ListBuffer)

Scala中,通過ListBuffer來定義可變列表 package com.fesco.list

import scala.collection.mutable.ListBuffer

object ListBufferDemo {

def main(args: Array[String]): Unit = {

// 方式一

// 調(diào)用ListBuffer類的主構(gòu)造器

val buffer1 = new ListBuffer[Int]()

buffer1 += 4

println(buffer1)

// 方式二

// 調(diào)用了ListBuffer伴生對(duì)象中的apply函數(shù)

val buffer2 = ListBuffer[Int](1, 2, 3, 4, 5)

println(buffer2)

}

}

基本操作 package com.fesco.list

import scala.collection.mutable.ListBuffer

object ListBufferDemo2 {

def main(args: Array[String]): Unit = {

val list = ListBuffer[Int](1, 2, 3, 4, 5)

// 在尾部追加元素

list += 4

list append 7

println(list)

// 在頭部插入元素

list prepend 0

// list.+=:(2)

2 +=: list

println(list)

// 在指定下標(biāo)位置上插入元素

list.insert(3, 6)

println(list)

// 修改指定位置上的元素

list(2) = 10

list.update(3, 12)

println(list)

// 刪除指定下標(biāo)位置上的元素

list.remove(0)

println(list)

// 刪除指定的元素(第一個(gè))

list -= 3

println(list)

}

}

合并列表 package com.fesco.list

import scala.collection.mutable.ListBuffer

object ListBufferDemo3 {

def main(args: Array[String]): Unit = {

val list1 = ListBuffer[Int](1, 2, 3)

val list2 = ListBuffer[Int](4, 5, 6)

// 將list1和list2合并

// ++合并之后產(chǎn)生一個(gè)新的列表,而不是修改原列表

val r1 = list1 ++ list2

println(r1)

// 要求:將list2中的數(shù)據(jù)合并到list1中

list1 ++= list2

println(list1)

// 獲取list1中有而list3中沒有的數(shù)據(jù) - 差集

val list3 = ListBuffer[Int](1, 3, 5, 7)

list1 --= list3

println(list1)

}

}

柚子快報(bào)激活碼778899分享:開發(fā)語言 Scala之List

http://yzkb.51969.com/

文章鏈接

評(píng)論可見,查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。

轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://m.gantiao.com.cn/post/19183207.html

發(fā)布評(píng)論

您暫未設(shè)置收款碼

請(qǐng)?jiān)谥黝}配置——文章設(shè)置里上傳

掃描二維碼手機(jī)訪問

文章目錄