scala集合

一、數組(Array)

1.數組轉換

不可變轉可變:arr1.toBuffer,arr1本身沒有變化

可變轉不可變:arr2.toArray,arr2本身沒有變化

2.多維數組

創建:val arr = Array.ofDim[Int](3, 4)(3 行 4 列)

訪問:arr(行索引)(列索引)

遍歷:嵌套循環

二、列表(List)

1.不可變列表

創建:val list = List(1, 2, 3)(數據有順序,可重復)

List 默認為不可變集合

添加元素:::(從右向左運算),如5 :: list

合并列表::::(扁平化合并)

空集合nill

2.可變列表(ListBuffer)

添加數據+=、append、insert

打印集合數據foreach

修改數據update

刪除數據remove

三、集合(Set)

默認情況下, Scala 使用的是不可變集合, 如果你想使用可變集合, 需要引用

scala.collection.mutable.Set 包

1.不可變 Set

特性:無序、不可重復

創建:val set = Set(1, 2, 3)

2.可變 mutable。Set

導入:import scala.collection.mutable.Set

操作:添加元素+=、刪除元素-=、添加元素返回新集合+

四、Map集合

是一個散列表,它存儲的內容也是鍵值對(key-value) 映射

1.不可變 Map

創建:val map = Map("a" -> 1, "b" -> 2)

訪問:map.get("a").getOrElse(0)

2.可變 Map

導入:import scala.collection.mutable.Map

操作:增加數據+=、添加數據并返回put、刪除數據-=、修改數據update

五、元組(Tuple)

組也是可以理解為一個容器,可以存放各種相同或不同類型的數據。說的簡單點,就

是將多個無關的數據封裝為一個整體,稱為元組

最大只能有22個元素

定義:val tuple = (1, "a", true)

訪問:_1、_2... 或 productElement(索引)

遍歷:productIterator

六、集合常用函數

1.基本操作

長度:length/size

遍歷:foreach

包含檢查:contains

轉字符串:mkString(",")

2.衍生操作

頭 / 尾:head、tail

反轉:reverse

取子集:take(n)、drop(n)

合并:union、intersect、diff

拉鏈:zip(按索引配對)

3.計算函數

求和:sum

乘積:product

最值:max、min

排序:sortBy、sortWith、sorted

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/75291.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/75291.shtml
英文地址,請注明出處:http://en.pswp.cn/web/75291.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

常用 Excel VBA 技巧,簡單好學易上手

在日常辦公中,我們常常會遇到各種繁瑣的數據處理任務,而 Excel VBA(Visual Basic for Applications)作為一款強大的自動化工具,能夠幫助我們輕松應對這些挑戰。本文將介紹一些常用且簡單好學的 Excel VBA 技巧&#xf…

Java 基礎 - 反射(1)

文章目錄 引入類加載過程1. 通過 new 創建對象2. 通過反射創建對象2.1 觸發加載但不初始化2.2 按需觸發初始化2.3 選擇性初始化控制 核心用法示例1. 通過無參構造函數創建實例對象2. 通過有參構造函數創建實例對象3. 反射通過私有構造函數創建對象, 破壞單例模式4. …

如何在React中集成 PDF.js?構建支持打印下載的PDF閱讀器詳解

本文深入解析基于 React 和 PDF.js 構建 PDF 查看器的實現方案,該組件支持 PDF 渲染、圖片打印和下載功能,并包含完整的加載狀態與錯誤處理機制。 完整代碼在最后 一個PDF 文件: https://mozilla.github.io/pdf.js/web/compressed.tracemo…

數據結構與算法-動態規劃-線性動態規劃,0-1背包,多重背包,完全背包,有依賴的背包,分組背包,背包計數,背包路徑

動態規劃原理 動態規劃這玩意兒,就好比是在拓撲圖上玩跳格子游戲。在圖論中,咱們是從特定的節點跳到其他節點;而在動態規劃里呢,我們是從一個狀態 “嗖” 地轉移到另一個狀態。狀態一般用數組來表示,就像 f [i][j]&am…

解決文件夾解壓中文字符產生亂碼的問題

太tm智能了,本來還想看看解壓工具在哪里修改,智能的識別到亂碼了。點贊 看到那個地球了嗎,點擊那個球,這個修改不是侵略性的,不會修改壓縮文件本身所以需要在當前頁面解壓 參考 https://blog.csdn.net/QCSYSZQ/artic…

C++與C的區別

目錄 前言 一、從字面上看 二、從編程思想上看 三、C 和 C++ 都有各自適合的領域和特性 四、劃重點 前言 本文主要對 C 和 C++ 兩種編程語言進行對比區分,便于大家理解 一、從字面上看 1.首先:兩者第一個字符完全一致 說明:C++ 完全兼容 C ,凡是合法的 C 程序在 C…

水利水電安全員ABC適合哪些人考?

水利水電安全員證是水利工程建設領域的重要職業資格證書,主要涉及水利水電工程施工安全管理、風險防控和應急處理等工作。那么,哪些人適合考取? 哪些人適合考水利水電安全員? 1. 水利水電工程從業人員 ? 施工管理人員&#xf…

Linux中用gdb查看coredump文件

查看dump的命令: gdb 可執行文件 dump文件路徑查看函數調用棧 (gdb)bt查看反匯編代碼 (gdb)disassemble查看寄存器的值 (gdb)info all-registers如果通過上述簡單命令無法排查,還是通過-g參數編譯帶符號表的可執行文件,再用gdb查看

【前端】【React】useCallback的作用與使用場景總結

一、useCallback 的作用與使用場景總結 useCallback 是 React 提供的一個 Hook,用于緩存函數的引用,避免因為組件重新渲染而導致函數地址發生變化。它返回一個記憶(memoized)后的回調函數,只有當依賴項發生變化時才會…

藍橋杯備賽學習筆記:高頻考點與真題預測(C++/Java/python版)

2025藍橋杯備賽學習筆記 ——高頻考點與真題預測 一、考察趨勢分析 通過對第13-15屆藍橋杯真題的分析,可以發現題目主要圍繞基礎算法、數據結構、數學問題、字符串處理、編程語言基礎展開,且近年逐漸增加動態規劃、圖論、貪心算法等較難題目。 1. 基…

20250410在榮品的PRO-RK3566開發板使用Rockchip原廠的buildroot系統時自動掛載eth0【直接編譯進IMG】

【暫時沒有找到第一次編譯就可以修改的地方!!!!】 rootrootrootroot-X99-Turbo:~/RK3566_RK3568_Linux5.10_V1.2.0$ find . -name interfaces 【完整編譯之后,基本確認修改這里有效。】 ./buildroot/output/rockchip_r…

c11新特性,繼承構造函數

#include <iostream> #include <string>class Person { public:std::string name;int age;// 主構造函數Person(const std::string& name, int age) : name(name), age(age) {std::cout << "Person created with name: " << name <&l…

【TS學習】(24)什么是裝飾器

在 TypeScript 中&#xff0c;裝飾器&#xff08;Decorators&#xff09; 是一種特殊的聲明&#xff0c;用于為類、類成員&#xff08;屬性、方法、訪問器&#xff09;、方法參數或整個類添加元數據或修改其行為。裝飾器是 JavaScript 和 TypeScript 的實驗性特性&#xff0c;廣…

datagrip如何連接數據庫

datagrip連接數據庫的步驟 2025版本 想要鏈接數據庫是需要一個jar包的&#xff0c;所以將上面進行刪除之后&#xff0c;需要下載一個jar包 那么這個時候需要鏈接上傳一個mysql鏈接的jar包 選擇核心驅動類 上述操作完成之后&#xff0c;然后點擊apply再點擊ok即可 如下圖說明my…

菊風RTC 2.0 開發者文檔正式發布,解鎖音視頻新體驗!

重磅發布&#xff01; 開發者們&#xff0c;菊風實時音視頻2.0文檔已正式發布上線&#xff0c;為您提供更清晰、更高效的開發支持&#xff01;讓菊風實時音視頻2.0為您的音視頻應用加速~ 菊風實時音視頻2.0聚焦性能升級、體驗升級、錄制服務升級&#xff0c;助力視頻通話、語…

輕量級碎片化筆記memos本地NAS部署與跨平臺跨網絡同步筆記實戰

文章目錄 前言1. 使用Docker部署memos2. 注冊賬號與簡單操作演示3. 安裝cpolar內網穿透4. 創建公網地址5. 創建固定公網地址 推薦 ? 前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。 點擊跳轉到網站 前言…

【Vue #2】腳手架 指令

一、腳手架 腳手架&#xff1a;一個保證各項工作順利開展的平臺&#xff0c;方便我們 拿來就用&#xff0c;零配置 1. Vue 代碼開發方式 相比直接 script 引入 vue 源碼&#xff0c;有沒有更好的方式編寫vue代碼呢? ① 傳統開發模式&#xff1a; 基于html文件開發Vue&…

ArkTS語言入門之接口、泛型、空安全、特殊運算符等

前言 臭寶們&#xff0c;今天我們來學習ArkTS中最后的一些內容。 實現接口 包含implements子句的類必須實現列出的接口中定義的所有方法&#xff0c;但使用默認實現定義的方法除外。 interface DateInterface {now(): string; } class MyDate implements DateInterface {no…

Maven超級詳細安裝部署

1.到底什么是Maven&#xff1f;搞清楚這個 Maven 是一個項目管理工具&#xff0c;主要用于 Java 項目的構建、依賴管理和文檔生成。 它基于項目對象模型&#xff08;POM&#xff09;&#xff0c;通過 pom.xml 文件定義項目的配置。 &#xff08;簡單說破&#xff1a;就是工程…

高并發內存池(三):PageCache(頁緩存)的實現

前言&#xff1a; 在前兩期內容中&#xff0c;我們深入探討了內存管理機制中在 ThreadCache 和 CentralCache兩個層級進行內存申請的具體實現。這兩層緩存作為高效的內存分配策略&#xff0c;能夠快速響應線程的內存需求&#xff0c;減少鎖競爭&#xff0c;提升程序性能。 本期…