国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Scala中集合的使用

這篇具有很好參考價(jià)值的文章主要介紹了Scala中集合的使用。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

第2關(guān):Set 集合的使用

  • 任務(wù)要求
  • 參考答案
  • 評(píng)論3
  • 任務(wù)描述
  • 相關(guān)知識(shí)
    • Set 集合簡(jiǎn)介
    • 定義 Set 集合
    • Set集合的常用操作
      • 三個(gè)最基本的操作
      • 連接集合
      • 交集
      • 常用方法表
  • 編程要求
  • 測(cè)試說(shuō)明

任務(wù)描述

本關(guān)任務(wù):求出兩個(gè)集合的交集。

相關(guān)知識(shí)

常見(jiàn)的集合類(lèi)有 List 列表、Set 集合、Map 映射和元組等。接下來(lái)我們將為大家介紹第二種集合---Set 集合。

Set 集合簡(jiǎn)介

Set 是最簡(jiǎn)單的一種集合。集合中的對(duì)象不按特定的方式排序,并且沒(méi)有重復(fù)對(duì)象。

定義 Set 集合

以下代碼演示了如何定義 Set 集合。

 
  1. object ForDemo {
  2. def main(args: Array[String]): Unit = {
  3. // 定義一個(gè)空集合
  4. var set: Set[Nothing] =Set()
  5. // 定義一個(gè)存儲(chǔ)字符串的集合
  6. var set1: Set[String] =Set("edu","coder")
  7. // 定義一個(gè)存儲(chǔ)整數(shù)的集合
  8. var set2: Set[Int] =Set(1,2,3)
  9. println(set)
  10. println(set1)
  11. println(set2)
  12. }
  13. }

執(zhí)行結(jié)果:

 
  1. Set()
  2. Set(edu, coder)
  3. Set(1, 2, 3)

從以上代碼中可以看出,使用 Set(元素1,元素2,...) 即可定義一個(gè) Set 集合。

Set集合的常用操作

三個(gè)最基本的操作

Scala Set 有三個(gè)基本操作:

方法名 說(shuō)明
head 返回列表第一個(gè)元素
tail 返回一個(gè)列表,包含除了第一元素之外的其他元素
isEmpty 在列表為空時(shí)返回 true

這些基本的操作可應(yīng)用于任何 Scala 列表。實(shí)例如下:

 
  1. object ForDemo {
  2. def main(args: Array[String]): Unit = {
  3. // 定義 Set 集合
  4. val site = Set("educoder", "百度", "騰訊")
  5. println( "第一網(wǎng)站是 : " + site.head )
  6. println( "最后一個(gè)網(wǎng)站是 : " + site.tail )
  7. println( "查看列表 site 是否為空 : " + site.isEmpty )
  8. }
  9. }

執(zhí)行結(jié)果:

 
  1. 第一網(wǎng)站是 : educoder
  2. 除了第一家網(wǎng)站之外的網(wǎng)站的是 : Set(百度, 騰訊)
  3. 查看列表 site 是否為空 : false

連接集合

Scala 提供了兩種方法來(lái)連接兩個(gè)或者兩個(gè)以上的 Set 集合,這兩種方法分別是 ++ 運(yùn)算符 .++() 方法。

 
  1. object ForDemo {
  2. def main(args: Array[String]): Unit = {
  3. val site1 = Set("educoder", "騰訊", "百度")
  4. val site2 = Set("華為","educoder","淘寶")
  5. // 使用運(yùn)算符 ++
  6. var site = site1 ++ site2
  7. println( "site1 ++ site2 : " + site )
  8. // 使用 .++ 方法
  9. site = site1.++(site2)
  10. println( "site1.++(site2) : " + site )
  11. }
  12. }

執(zhí)行結(jié)果:

 
  1. site1 ++ site2 : Set(騰訊, 淘寶, 百度, 華為, educoder)
  2. site1.++(site2) : Set(騰訊, 淘寶, 百度, 華為, educoder)

需要注意的是:1.兩個(gè)集合合并之后,會(huì)把重復(fù)的元素去除;2.只有當(dāng)兩個(gè)集合的元素類(lèi)型相同時(shí),才可以做連接。

交集

使用 & 方法或 intersect 方法可以查看兩個(gè)集合的交集元素。

 
  1. object Test {
  2. def main(args: Array[String]) {
  3. val num1 = Set(5,6,90,28,30,45)
  4. val num2 = Set(5,60,90,20,35,55)
  5. // 打印交集
  6. println( "num1.&(num2) : " + num1.&(num2) )
  7. println( "num1.intersect(num2) : " + num1.intersect(num2) )
  8. }
  9. }

執(zhí)行結(jié)果:

 
  1. num1.&(num2) : Set(5, 90)
  2. num1.intersect(num2) : Set(5, 90)

常用方法表

下表列出了 Set 集合的常用方法:

方法 描述
def +(elem: A): Set[A] 為集合添加新元素,并創(chuàng)建一個(gè)新的集合,除非元素已存在
def -(elem: A): Set[A] 移除集合中的元素,并創(chuàng)建一個(gè)新的集合
def contains(elem: A): Boolean 如果元素在集合中存在,返回 true,否則返回 false
def &(that: Set[A]): Set[A] 返回兩個(gè)集合的交集
def &~(that: Set[A]): Set[A] 返回兩個(gè)集合的差集
def +(elem1: A, elem2: A, elems: A*): Set[A] 通過(guò)添加傳入指定集合的元素創(chuàng)建一個(gè)新的不可變集合
def ++(elems: A): Set[A] 合并兩個(gè)集合
def -(elem1: A, elem2: A, elems: A*): Set[A] 通過(guò)移除傳入指定集合的元素創(chuàng)建一個(gè)新的不可變集合
def apply(elem: A) 檢測(cè)集合中是否包含指定元素
def count(p: (A) => Boolean): Int 計(jì)算滿(mǎn)足指定條件的集合元素個(gè)數(shù)
def copyToArray(xs: Array[A], start: Int, len: Int): Unit 復(fù)制不可變集合元素到數(shù)組
def diff(that: Set[A]): Set[A] 比較兩個(gè)集合的差集
def drop(n: Int): Set[A]] 返回丟棄前n個(gè)元素新集合
def equals(that: Any): Booleanequals 方法可用于任意序列。用于比較系列是否相等
def exists(p: (A) => Boolean): Boolean 判斷不可變集合中指定條件的元素是否存在
def filter(p: (A) => Boolean): Set[A] 輸出符合指定條件的所有不可變集合元素
def find(p: (A) => Boolean): Option[A] 查找不可變集合中滿(mǎn)足指定條件的第一個(gè)元素
def foreach(f: (A) => Unit): Unit 將函數(shù)應(yīng)用到不可變集合的所有元素
def head: A 獲取不可變集合的第一個(gè)元素
def init: Set[A] 返回所有元素,除了最后一個(gè)
def intersect(that: Set[A]): Set[A] 計(jì)算兩個(gè)集合的交集
def isEmpty: Boolean 判斷集合是否為空
def last: A 返回最后一個(gè)元素
def max: A 查找最大元素
def min: A 查找最小元素
def size: Int 返回不可變集合元素的數(shù)量
def sum: A 返回不可變集合中所有數(shù)字元素之和
def tail: Set[A] 返回一個(gè)不可變集合中除了第一元素之外的其他元素
def take(n: Int): Set[A] 返回前 n 個(gè)元素
def toList: List[A] 返回 List,包含了不可變集合的所有元素
def toMap[T, U]: Map[T, U] 返回 Map,包含了不可變集合的所有元素
def toSeq: Seq[A] 返回 Seq,包含了不可變集合的所有元素
def toString(): String 返回一個(gè)字符串,以對(duì)象來(lái)表示

編程要求

仔細(xì)閱讀右側(cè)編輯區(qū)內(nèi)給出的代碼框架及注釋?zhuān)?Begin-End 間編寫(xiě)程序代碼,求兩個(gè)集合的交集,具體要求如下:

  • 接收給定的多行數(shù)據(jù)(例:4 \n 56 \n 5 \n -10 \n 10,其中第一個(gè)數(shù)代表集合長(zhǎng)度,其余數(shù)代表具體值,\n 僅用來(lái)說(shuō)明前一個(gè)數(shù)與另一個(gè)數(shù)之間是換行,實(shí)際數(shù)據(jù)中并沒(méi)有);
  • 將接收到的數(shù)據(jù)添加進(jìn)集合,并輸出該集合與給定集合 set 的交集。

測(cè)試說(shuō)明

平臺(tái)將使用測(cè)試集運(yùn)行你編寫(xiě)的程序代碼,若全部的運(yùn)行結(jié)果正確,則通關(guān)。

例:
測(cè)試輸入:

 
  1. 4
  2. 3
  3. 4
  4. 6
  5. 2

預(yù)期輸出:

 
  1. List(2, 4, 5, 3, 6)

開(kāi)始你的任務(wù)吧,祝你成功!

太想吐槽了,案例那里根本想不到答案是怎么來(lái)的,得去試錯(cuò)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-428770.html

 /********** Begin **********/
    var n=StdIn.readInt()
    var s:Set[Int]=Set()
    for(i <- 1 to n){
      var x= StdIn.readInt
      s+=x
    }
    println( "兩個(gè)集合的交集是:" + set.&(s) ) 
    /********** End **********/

到了這里,關(guān)于Scala中集合的使用的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【Scala】集合

    【Scala】集合

    目錄 類(lèi)型 不可變集合 可變集合 數(shù)組 不可變 可變數(shù)組 不可變數(shù)組與可變數(shù)組的轉(zhuǎn)換 多維數(shù)組 List list運(yùn)算符 可變 ListBuffer Set 集合 不可變 Set 可變 mutable.Set Map 集合 可變 Map 元組 操作 通用操作 衍生集合操作 計(jì)算函數(shù) 排序 sorted sortBy sortWith 計(jì)算高級(jí)函數(shù) 實(shí)例 WordCount 案例

    2023年04月09日
    瀏覽(21)
  • Scala集合 - List

    水善利萬(wàn)物而不爭(zhēng),處眾人之所惡,故幾于道?? 一、不可變List ? 1. 創(chuàng)建List ? 2. 取指定的數(shù)據(jù) ? 3. 向List中添加元素 ? 4. 遍歷List ? 5. 集合間合并 - 扁平化處理 二、可變List ? 1. 創(chuàng)建可變集合對(duì)象 ? 2. 添加元素 ? 3. 修改元素 ? 4. 刪除元素 1. 創(chuàng)建List ??創(chuàng)建一個(gè)L

    2024年02月15日
    瀏覽(23)
  • Scala集合 - Set

    水善利萬(wàn)物而不爭(zhēng),處眾人之所惡,故幾于道?? 一、不可變Set集合 ? 1. 創(chuàng)建集合 ? 2. 添加元素 ? 3. 刪除元素 ? 4. 遍歷集合 二、可變Set集合 ? 1. 創(chuàng)建可變集合 ? 2. 添加元素 ? 3. 刪除元素 ? 4. 遍歷集合 1. 創(chuàng)建集合 ??Set點(diǎn)進(jìn)去是個(gè)特質(zhì),沒(méi)法new,直接用伴生對(duì)象的

    2024年02月16日
    瀏覽(34)
  • Scala集合

    Scala集合

    scala中的集合分為兩種 ,可變集合和不可變集合, 不可變集合可以安全的并發(fā)的訪(fǎng)問(wèn)! 集合的類(lèi)主要在一下兩個(gè)包中 可變集合包 scala.collection.mutable 不可變集合包 scala.collection.immutable 默認(rèn)的 Scala 不可變集合,就是指該集合對(duì)象不可修改,每次修改就會(huì)返回一個(gè)新對(duì)象,而不會(huì)對(duì)

    2024年01月20日
    瀏覽(19)
  • Scala之集合(3)

    Scala之集合(3)

    ? 目錄 ? WordCount案例: 需求分析與步驟: 拆分: 聚合: 格式轉(zhuǎn)化: 方法1: 方法2: 排序: 方法1: 方法2: 取top3: 整體化簡(jiǎn)后的代碼: WordCoount案例升級(jí): 給定數(shù)據(jù): 方法1: 方法2: 方法3: 并行集合: ? 聚合過(guò)程較為繁瑣,分為以下幾步: (1)先將切割后的List集合

    2023年04月24日
    瀏覽(19)
  • Scala之集合(2)

    Scala之集合(2)

    ? 目錄 集合基本函數(shù): (1)獲取集合長(zhǎng)度 (2)獲取集合大小 (3)循環(huán)遍歷 (4)迭代器 (5)生成字符串 (6)是否包含 衍生集合: (1)獲取集合的頭 (2)獲取集合的尾 (3)集合最后一個(gè)數(shù)據(jù) (4)集合初始數(shù)據(jù) (5)反轉(zhuǎn) (6)取前(后)n 個(gè)元素 (7)去掉前(后)

    2024年02月02日
    瀏覽(21)
  • Scala之集合(1)

    Scala之集合(1)

    目錄 ???????集合介紹: 不可變集合繼承圖:?編輯 ?可變集合繼承圖 數(shù)組: 不可變數(shù)組: 樣例代碼: 遍歷集合的方法: 1.for循環(huán) 2.迭代器 3.轉(zhuǎn)換成List列表: 4.使用foreach()函數(shù): 可變數(shù)組: ArrayBuffer: 二維數(shù)組: ?List集合: Set 集合: 不可變 Set: 可變Set: Map集合

    2023年04月18日
    瀏覽(23)
  • Scala集合繼承體系圖

    Scala集合繼承體系圖

    1) Scala 的集合有三大類(lèi):序列 Seq、集Set、映射 Map,所有的集合都擴(kuò)展自 Iterable特質(zhì)。 2) 對(duì)于幾乎所有的集合類(lèi),Scala 都同時(shí)提供了可變和不可變的版本,分別位于以下兩個(gè)包 不可變集合:scala.collection.immutable 可變集合: scala.collection.mutable 3) Scala 不可變集合,就是指該

    2024年02月10日
    瀏覽(17)
  • Scala的隊(duì)列與并行集合

    在 Scala 中,隊(duì)列和并行集合是常用的數(shù)據(jù)結(jié)構(gòu)和并發(fā)編程工具。 Scala 提供了可變和不可變兩種隊(duì)列。可變隊(duì)列通過(guò) scala.collection.mutable.Queue 類(lèi)來(lái)實(shí)現(xiàn),而不可變隊(duì)列通過(guò) scala.collection.immutable.Queue 類(lèi)來(lái)實(shí)現(xiàn)。 可變隊(duì)列可以動(dòng)態(tài)添加、移除和檢索元素,常用的方法包括 enqueue 和

    2024年02月10日
    瀏覽(17)
  • Scala集合常用函數(shù) - 初級(jí)計(jì)算函數(shù)

    水善利萬(wàn)物而不爭(zhēng),處眾人之所惡,故幾于道?? ??1. 求和 ??2. 求乘積 ??3. 最大值 ??4. 最小值 ??5. 排序 ? ??sorted ? ??sortBy() ? ??sortWith() 以L(fǎng)ist集合為例: 1. 求和 2. 求乘積 3. 最大值 4. 最小值 5. 排序 1. sorted ?對(duì)一個(gè)集合進(jìn)行自然排序,通過(guò)傳遞隱式的

    2024年02月16日
    瀏覽(20)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包