Kotlin集合概述

  • Kotlin 的集合類同樣由兩個接口派生: CollectionMapCollectionMap 是 Java 集合框架的根接口,這兩個接口又包含了 一些子接口或實現類
  • Kotlin 集合與 Java 集合不同, Java 集合都是可變集合一一開發者可以向集合中添加、刪除、修改元素,但 Kotlin 的集合被分成兩大類: 可變集合不可變集合。只有可變集合才能添加、刪除、修改元素,不可變集合只能讀取元素。

Collection集合

  • Kotlin 為 Collection 接口派生了一個子接口 , 即MutableCollection,該子接口又包含了兩個子接口 :MutableSetMutableList, 這一分支就代表了 Kotlin 的可變集合。而由Collection 直接派生的SetList接口則代表了不可變集合
    Kotlin的設計思路:
  • 可變集合接口、可變集合類是不可變集合接口、不可變類的子接口或子類 。
  • 每個接口下都有一個抽象實現類 。
    Kotlin 的集合實現類比 Java 更少,它只提供了HashSetLinkedHashSet
    ArrayList 這三個最常見的實現類,如果需要使用TreeSetLinkedList集合實現類,則可以使用 Java 集合框架提供的類 。

注意:
Kotlin 在 JVM 平臺上并未真正實現 HashSetLinkedHashSetArrayList 這些類,只是為 Java 的 HashSetLinkedHashSetArrayList 指定了一個類型別名而己,這樣就直接借用了 Java 的這些集合類 。 此外, Kotlin 為這些集合類擴展了更多的方法,因
此用起來很方便。

Map集合

  • Kotlin 的 Map 派生了 MutableMap 接口,它代表了 一個可變的 Map集合。而實際上 Kotlin 只為 Map 提供了 HashMapLinkedHashMap 常用實現類。如果開發者需要使用 TreeMapEnurnMapWeakHashMap ,則依然可以使用 Java 集合框架所提供的類。

注意:
Kotlin 在JVM 平臺上并未真正實現 HashMapLinkedHashMap ,只是為 Java
HashMapLinkedHashMap 指定了一個類型別名而己,這樣就直接借用了 Java
的這些集合類。此外, Kotlin 為這些集合類擴展了更多的方法,因此用起來更方
便。

不難發現 Kotlin 只提供了 HashSetHashMapLinkedHashSetLinkedHashMapArrayList 這 5 個集合實現類,而且它們都是可變集合 。那么說好的不可變集
合呢? Kotlin 的不可變集合類并沒有暴露出來,我們只能通過函數來創建不可變集合

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

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

相關文章

Mysql核心框架知識

Mysql核心框架 本文旨在梳理和理解 MySQL 的一些核心知識點,并結合常見面試題進行思考和總結。這些內容主要來源于我的個人學習與理解。 1. 事務 概念 事務指的是滿足 ACID 特性的一組操作,可以通過 Commit 提交一個事務,也可以使用 Rollback…

C# NX二次開發:字符串控件StringBlock講解

大家好,今天介紹ug二次開發過程中的一個叫字符串的控件,這個控件在塊UI編輯器中可以使用。 下面是這個控件中的一些屬性和方法: 1、 protected internal StringBlock(); // // 摘要: // Returns or sets the WideValue.…

【datawhale組隊學習】n8n TASK01

教程地址:https://github.com/datawhalechina/handy-n8n/ 文章目錄n8n節點的類別local-pc-deployn8n n8n 意思是 nodemation,是 node 與 automation 的組合詞,讀作 n-eight-n。 n8n 是一個開源的、基于節點的自動化工具,官方站點…

海洋牧場項目融資新曙光:綠色金融賦能藍色經濟發展

在海洋經濟蓬勃發展的時代浪潮中,海洋牧場作為新興的海洋產業模式,承載著保障國家糧食安全、促進海洋生態保護與可持續利用的重要使命。然而,海洋牧場項目的建設是一項龐大而復雜的系統工程,從前期的基礎設施搭建、種苗培育&#…

51c大模型~合集170

自己的原文哦~ https://blog.51cto.com/whaosoft/14132244 #4DNeX 一張圖,開啟四維時空:4DNeX讓動態世界 「活」起來 僅憑一張照片,能否讓行人繼續行走、汽車繼續飛馳、云朵繼續流動,并讓你從任意視角自由觀賞&#…

深入剖析以太坊虛擬機(EVM):區塊鏈世界的計算引擎

引言:EVM——區塊鏈世界的"計算引擎" 以太坊虛擬機(Ethereum Virtual Machine,EVM)是以太坊網絡的核心創新,它不僅僅是一個執行環境,更是整個區塊鏈生態系統的"計算引擎"。作為智能合…

深入分析 Linux PCI Express 子系統

深入分析 Linux PCI Express 子系統 一、PCI Express 工作原理 PCIe 是一種高速串行點對點互連協議,采用分層架構: #mermaid-svg-rsh0SW87JPR0aUxA {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid…

MySQL 運算符詳解:邏輯、位運算與正則表達式應用

MySQL 運算符詳解:邏輯、位運算與正則表達式應用 在 MySQL 中,運算符是構建復雜查詢條件的基礎。除了基礎的算術和比較運算符,邏輯運算符、位運算符以及正則表達式的靈活運用,能讓數據篩選更加精準高效。本文將系統講解這些運算符…

<數據集>遙感飛機識別數據集<目標檢測>

數據集下載鏈接https://download.csdn.net/download/qq_53332949/91702190數據集格式:VOCYOLO格式 圖片數量:3842張 標注數量(xml文件個數):3842 標注數量(txt文件個數):3842 標注類別數:20 標注類別名稱&#xf…

Windows從零到一安裝KingbaseES數據庫及使用ksql工具連接全指南

目錄Windows從零到一安裝KingbaseES數據庫及使用ksql工具連接全指南前言第一部分:安裝前準備1.1 系統要求檢查1.2 下載安裝包1.3 驗證安裝包完整性第二部分:安裝KingbaseES2.1 啟動安裝程序2.2 接受許可協議2.3 選擇授權文件2.4 設置安裝目錄2.5 選擇安裝…

Git+Jenkins 基本使用

一、什么是 JenkinsJenkins 是一個功能強大的應用程序,允許持續集成和持續交付項目(持續部署),無論用的是什么平臺。這是一個免費的源代碼,可以處理任何類型的構建或持續集成。集成 Jenkins 可以用于一些測試和部署技術…

Linux第十三講:線程同步和互斥

Linux第十三講:線程同步和互斥1.線程互斥1.1進程線程間的互斥背景概念1.2什么是鎖1.2.1認識鎖,理解鎖2.線程同步2.1條件變量2.2生產和消費模型2.3基于阻塞隊列(blockqueue)的生產消費模型2.3.1單生產,單消費的阻塞隊列模擬實現2.3.2多生產&am…

SAP 簡單的AMDP demo 練習使用

SAP AMDP(ABAP Managed Database Procedure)是SAP的一項先進技術,用于在SAP HANA數據庫上執行高性能的數據庫操作。它允許ABAP開發人員編寫數據庫過程,這些過程可以在數據庫級別上執行,從而實現更快的數據處理和更高的…

Maven JAR Plugin 插件使用說明

Maven JAR Plugin 插件使用說明1 Maven JAR Plugin 插件地址2 Maven JAR Plugin 特點3 maven-assembly-plugin 的用法3.1 無依賴項 maven-jar-plugin 配置3.2 有依賴項 maven-jar-plugin 配置3.3 配合maven-dependency-plugin 將依賴復制到指定位置1 Maven JAR Plugin 插件地址…

QT+Yolov8 推理部署,ONNX模型 ,實例分割+目標檢測

QTYolov8 實例分割、目標檢測推理。QT源碼。 程序準備/版本:QT creator QT6.8 編譯器:MSVC2022 opencv:4.7 onnxruntime:1.16.0 cpu版本 QTyolo推理部署程序部分源碼: #include "aitoolinterface.h" #include "ui_aitoolinterface.h" #include <QDebu…

【java實現一個接口多個實現類通用策略模式】

java實現同個接口多個實現類通用策略模式 項目業務中&#xff0c;有多個平臺&#xff0c;多個平臺直接有相同的業務&#xff0c;只有一個接口入口&#xff0c;但是 不同的平臺入口&#xff0c;雖然接口相同&#xff0c;參數相同&#xff0c;但是各自的具體實現不同&#xff0c;…

leetcode-139. 單詞拆分-C

暴力回溯回溯過程就是一個決策樹模型&#xff0c;從所有選擇中找到合適的繼續&#xff0c;否則回到上一級繼續。該方法思路簡單&#xff0c;時間復雜度過高&#xff0c;大概1/4的用例超時。 bool backtrack(char *s, int cur, char** wordDict, int wordDictSize) {// 基線條件…

《彩色終端》詩解——ANSI 藝術解碼(DeepSeek)

AIi詩解通吾靈&#xff0c;直抄原文享分玲。 筆記模板由python腳本于2025-08-18 23:35:59創建&#xff0c;本篇筆記適合喜歡詩&代碼的coder翻閱。 學習的細節是歡悅的歷程 博客的核心價值&#xff1a;在于輸出思考與經驗&#xff0c;而不僅僅是知識的簡單復述。 Python官網…

抓包工具tcpdump詳細指南

目錄 1. 核心功能與特性 2. 關鍵參數速查表 3. 基礎命令 3.1 協議/端口過濾 3.2 IP 地址過濾 3.3 高級邏輯組合 3.4 控制輸出詳細度 3.5 解析包內容 3.6 特殊包過濾 3.7 限制抓包數量 3.8 過濾特定大小包 3.9 過濾提升性能 ??????3.10 多網卡綁定 3.11 高級…

三高架構雜談

我們的秒殺請求到了tomcat之后&#xff0c;我整個請求到了后端&#xff0c;我們怎么抗住高并發 也就是讓他1s抗住10w的訂單量&#xff0c;該怎么做 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>…