Kotlin 中 List 和 MutableList 的區別

在 Kotlin 中,List 和 MutableList 是兩種不同的集合接口,核心區別在于可變性。

Kotlin 集合框架的重要設計原則:通過接口分離只讀(read - only)和可變(mutable)操作,以提高代碼的安全性和可維護性。

List:是不可變集合接口(線程安全),一旦創建,其元素數量和元素內容都不能被修改。這種不可變有助于提高代碼的安全性和可維護性,避免意外的數據修改。

val list = listOf("A", "B", "C")
list[0] = "X" // 編譯錯誤!不允許修改
list.add("D") // 變異錯誤!沒有 add 方法

MutableList:是可變集合接口,允許對集合中的元素進行添加、刪除、修改等操作。這使得 MutableList 更加靈活,適用于需要動態改變集合內容的場景。

val mutableList = mutableListOf("A", "B", "C")
mutableList[0] = "X" // 允許修改
mutableList.add("D") // 允許添加
mutableList.removeAt(1) // 允許刪除

只讀 —> 可變:使用 toMutableList() 創建新的可變副本:

val list = listOf(1, 2, 3)
val mutableList = list.toMutableList() // 新對象
mutableList.add(4)

可變 —> 只讀:使用 toList() 創建新的只讀副本:

val mutable = mutableListOf(1, 2, 3)
val readOnly = mutable.toList()

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

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

相關文章

【能力比對】K8S數據平臺VS數據平臺

🔥🔥 AllData大數據產品是可定義數據中臺,以數據平臺為底座,以數據中臺為橋梁,以機器學習平臺為中層框架,以大模型應用為上游產品,提供全鏈路數字化解決方案。 ?AllData數據中臺官方平臺&…

Fastjson 從多層級的JSON數據中獲取特定字段的值

使用 Fastjson 的 JSONPath.eval 可以通過 JSONPath 表達式直接定位多層級 JSON 中的目標字段,避免逐層調用 getJSONObject() 的繁瑣操作。以下是具體實現方法和示例: 核心思路 通過 JSONPath.eval 方法,傳入 JSON 對象(或 JSON…

端口安全基本配置

1.top圖 2.交換機配置 交換機swa <SWA> system-view [SWA] vlan batch 10 20[SWA] interface GigabitEthernet0/0/1 [SWA-GigabitEthernet0/0/1] port link-type trunk [SWA-GigabitEthernet0/0/1] port trunk allow-pass vlan 10[SWA] interface GigabitEthernet0/0/2 …

hadoop集群建立

建立Hadoop集群的步驟指南 建立Hadoop集群需要系統規劃和多個步驟的配置。以下是詳細的建立流程&#xff1a; 一、前期準備 硬件需求 多臺服務器(至少3臺&#xff0c;1主2從) 每臺建議配置&#xff1a;至少4核CPU&#xff0c;8GB內存&#xff0c;100GB硬盤 穩定的網絡連接(…

從零開始學java--集合類(2)

集合類 目錄 集合類 Queue 隊列的使用&#xff1a; 雙端隊列&#xff08;Deque&#xff09; Map和Set 概念&#xff1a; 模型&#xff1a; Map 常見方法說明&#xff1a; 注意&#xff1a; TreeMap和HashMap的區別&#xff1a; Set 常見方法說明&#xff1a; 注…

【HarmonyOS 5】鴻蒙發展歷程

【HarmonyOS 5】鴻蒙發展歷程 一、鴻蒙 HarmonyOS 版本年代記 鴻蒙 1.0&#xff1a; 2019 年 8 月 9 日&#xff0c;華為在開發者大會上正式發布鴻蒙 1.0 系統&#xff0c;這一版本首次應用于華為榮耀智慧屏產品中&#xff0c;標志著華為正式進軍操作系統領域。該版本初步展現…

SpringBoot教學管理平臺源碼設計開發

概述 基于SpringBoot框架開發的??教學管理平臺??完整項目&#xff0c;幫助開發者快速搭建在線教育平臺。該系統包含學生端、教師端和管理后臺&#xff0c;實現了課程管理、隨堂測試、作業提交等核心功能&#xff0c;是學習SpringBoot開發的優質案例。 主要內容 1. 系統架…

人工智能端側熱度再起

在科技浪潮洶涌澎湃的當下,人工智能端側正悄然掀起新一輪的熱度風暴。曾經,人工智能更多停留在概念層面,仿佛是遙不可及的未來幻想;而后,它逐漸落地,在特定領域嶄露頭角,卻也顯得有些曲高和寡。但如今,人工智能端側正以前所未有的態勢融入我們的生活,從智能手機的語音…

相同的數(簡單)

深度優先搜索 如果兩個二叉樹都為空&#xff0c;則兩個二叉樹相同。如果兩個二叉樹中有且只有一個為空&#xff0c;則兩個二叉樹一定不相同。 如果兩個二叉樹都不為空&#xff0c;那么首先判斷它們的根節點的值是否相同&#xff0c;若不相同則兩個二叉樹一定不同&#xff0c;…

網絡安全等級保護有關工作事項[2025]

公安部發布公網安〔2025〕1846號文件&#xff0c;關于對網絡安全等級保護有關共工作事項的進一步說明 一、備案相關問題 1、如何執行系統備案動態更新工作? 全面梳理與重新填報&#xff1a; 答復&#xff1a;運營者需**全面梳理已備案系統**的情況&#xff0c;對于已完成定…

c++類【發展】

類的靜態成員&#xff08;用static聲明的成員&#xff09;,在聲明之外用例單獨的語句進行初始化&#xff0c;初始化時&#xff0c;不再需要用static進行限定。在方法文件中初始化。以防重復。 特殊成員函數 復制構造函數&#xff1a; 當使用一個對象來初始化另一個對象…

寧德時代區塊鏈+數字孿生專利解析:去中心化身份認證重構產業安全底座

引言&#xff1a;當動力電池巨頭瞄準數字孿生安全 2025年5月6日&#xff0c;金融界披露寧德時代未來能源&#xff08;上海&#xff09;研究院與母公司寧德時代新能源科技股份有限公司聯合申請的一項關鍵專利——“身份驗證方法、系統、電子設備及存儲介質”。這項技術將區塊鏈…

cesium之自定義地圖與地圖疊加

在appvue中,cesium支持更換不同的地圖資源,代碼如下 <template><div id"cesiumContainer" ref"cesiumContainer"></div> </template><script setup> import * as Cesium from cesium; import "./Widgets/widgets.css&…

STL?string!!!

一、引言 在之前的文章中&#xff0c;我們一同學習了有關類和對象、模板、動態內存管理的相關知識&#xff0c;那么接下來一段時間我們將要趁熱打鐵&#xff0c;一起來手撕C庫中最重要的一個庫----STL中的一些容器&#xff0c;在手撕它們之前&#xff0c;我將先介紹一下對應的容…

低版本GUI配置SAProuter

1、注意配置SAProuter時&#xff0c;必須添加后面的/H/ 如&#xff1a;/H/sap.sapzx.cn/H/ 2、或者有時需要配置service文件&#xff08;C:\WINDOWS \system32\drivers\etc\service&#xff09; sapmsEP1 3600/tcp

springBoot中自定義一個validation注解,實現指定枚舉值校驗

緣由 在后臺寫接口的時候&#xff0c;經常會出現dto某個屬性是映射到一個枚舉的情況。有時候還會出現只能映射到枚舉類中部分枚舉值的情況。以前都是在service里面自行判斷&#xff0c;很多地方代碼冗余&#xff0c;所以就想著弄一個自定義的validation注解來實現。 例如下面某…

MySQL數據庫中篇

#作者&#xff1a;允砸兒 #日期&#xff1a;乙巳青蛇年 四月初九 筆者繼續帶朋友們了解mysql數據庫中篇的內容。多了不說&#xff0c;少了不嘮&#xff0c;咱們直接就開寫。 書接上回筆者在上篇中介紹了什么是數據庫和數據庫的一些基礎的概念&#xff0c;以及mysql數據庫的…

AI如何重塑DDoS防護行業?六大變革與未來展望

隨著AI技術的深度滲透&#xff0c;DDoS防護行業正經歷一場從“規則驅動”到“智能驅動”的范式革命。傳統依賴靜態閾值和人工規則的防御模式已難以應對新型攻擊&#xff0c;而AI的引入不僅提升了檢測精度&#xff0c;更重構了防護體系的底層邏輯。以下是AI帶來的六大核心變革及…

五一作業-day04

文章目錄 1. **ps -ef是顯示當前系統進程的命令,統計下當前系統一共有多少進程**2. **last命令用于顯示所用用戶最近1次登錄情況,awk可以取出某一列,現在要取出last命令第1列并去重統計次數**3. **secure日志是用戶的登錄日志,過濾出secure日志中的Failed password的次數(用課堂…

抽獎系統(基于Tkinter)

一、抽獎規則及使用方法 抽獎規則&#xff1a; 從1-138個號碼中隨機抽獎&#xff0c;共進行n輪抽獎&#xff0c;每個號碼僅有一次中獎機會&#xff0c;即已中獎的號碼不會再次中獎。 使用方法&#xff1a; 要求開始抽獎后屏幕上隨機滾動顯示中獎號碼&#xff0c;點擊“STOP”之…