Android中(java和kotlin)中集合Collection的分类

简介: Android 中,集合是核心数据容器:List(有序可重复)、Set(无序不重复)、Map(键值对,键唯一)。Kotlin严格区分只读与可变类型(如List vs MutableList),并结合响应式(Flow)和持久化(Room)场景优化使用,提升安全与效率。(239字)

在 Android 开发(尤其是 Kotlin 环境)中,Collection(集合)本质上就是用来存储和操作一组数据的容器。它主要分为 List(列表)、Set(集合) 和 Map(映射) 三大类。

1. 在早期的java语法中List,Set和Map的主要区别可以按下面的简单理解:

  • List是有序的,可重复的集合,主要代表ArrayList,例如"苹果","橘子","香蕉","橘子","菠萝",其中2个"橘子"都会存在这个集合中,而且顺序会保持
  • Set是无序的,不可重复的集合,主要代表是HashSet,例如"苹果","橘子","香蕉","橘子","菠萝",最后保存后,重复的橘子就会只有一个元素,可以理解合并了,最后这个Set只有4个元素
  • Map是以键值对的形式保存的,也就是key-value的形式,key是不重复的,例如:apple-苹果,orange-橘子,banana-香蕉,可以通过apple的key获取到苹果的值

在实际开发中,通常会从可变性和数据来源两个维度来划分:

2. 按可变性划分(Kotlin 核心特性)

Kotlin 对集合做了严格的只读与可变区分,这在现代 Android 开发中非常有利于数据安全和状态管理:

  • 只读集合(Immutable):如 List<T>、Set<T>、Map<K, V>。它们没有 add、remove 等修改方法,通常用于 UI 层的数据展示或跨层传递,能有效避免并发修改异常。
  • 可变集合(Mutable):如 MutableList<T>、MutableSet<T>、MutableMap<K, V>。继承了只读接口并增加了增删改方法,适合在 ViewModel 或 Repository 中进行数据加工。

3. 按数据来源与线程安全划分(Android 特有)

  • 内存集合:即上述标准的 Kotlin/Java 集合(如 ArrayList、HashMap),数据完全驻留在内存中。
  • 响应式集合:如 Jetpack 提供的 StateList(Experimental)或配合 Flow 使用的集合。它们能感知生命周期和状态变化,常用于 Compose 等现代 UI 框架中驱动界面刷新。
  • 持久化/数据库集合:如 Room 数据库查询返回的集合。它们通常以 Flow<List<T>> 或 LiveData<List<T>> 的形式存在,数据来源于磁盘,具备线程安全和生命周期感知能力。

三大核心类型对比

类型 特点 常见实现类
List 有序、可重复。可以通过索引(下标)访问元素。 ArrayList, LinkedList, mutableListOf()
Set 无序、不可重复。常用于数据去重或判断元素是否存在。 HashSet, TreeSet, mutableSetOf()
Map 键值对(Key-Value)存储。Key 不可重复,通过 Key 获取 Value。 HashMap, TreeMap, mutableMapOf()

在 Android 开发中,选择哪种集合通常取决于业务场景:需要保持数据顺序且允许重复用 List;需要去重用 Set;需要通过唯一标识查找数据用 Map。同时,尽量优先使用 Kotlin 标准库提供的扩展函数(如 filter、map、forEach)来操作集合,代码会更加简洁高效。

相关文章
|
云安全 安全 网络安全
|
4天前
|
JavaScript 安全 前端开发
Nodejs Brotli decoder 代码执行漏洞 (CVE-2026-111497)10629
Node.js发布安全更新修复Brotli解码器高危RCE漏洞(CVE-2026-111497),建议受影响版本用户立即升级。
1860 1
|
10天前
|
人工智能 API 开发工具
DeepSeek Harness 神插件:白嫖 13 家大厂模型
`dsh-our-free-model` 是 DeepSeek Harness 神级插件:零配置、零API Key、零账号,聚合13家大厂免费模型(含DeepSeek V4.1 Flash、Kimi K3等),支持本地网关、用量看板与自动降级,真正实现“白嫖即用”。
1687 37
|
4天前
|
安全 应用服务中间件 Go
PHP2Shell 漏洞拆解:WordPress 与 nginx 为何中招
PHP2Shell 双 RCE 已遭在野利用:WordPress、Drupal 全在射程内,nginx 其实另有洞。拆成因与修复顺序
PHP2Shell 漏洞拆解:WordPress 与 nginx 为何中招
|
7天前
|
Web App开发 人工智能 前端开发
2026 年 AI 浏览器怎么选?Ego Lite、Tabbit、Chrome DevTools MCP 深度对比,开发者到底该用哪个?
2026年AI浏览器选型指南:Ego Lite专注多Agent协同(Mac优先),Tabbit国产首选,原生支持Windows与Codex控制;Chrome DevTools MCP非浏览器而是开发者利器,深度集成Console/Network/Performance调试能力,让AI真正“看懂并验证”前端代码。
967 2
|
11天前
|
安全 Linux 芯片
【万字长文】Ollama下载、安装、配置、使用保姆级教程(2026最新图解)
Ollama 是一款免费开源的本地大模型运行工具,支持 DeepSeek、Qwen 等主流模型,一条命令即可下载运行。2026 最新版 v0.35.1 官方安装包(1.47GB)已提供国内直连下载,纯本地、离线可用、无广告、无隐私泄露风险。
1062 2
|
11天前
|
JSON 程序员 数据格式
最新版Notepad++下载、安装、配置保姆级教程(附官网安装包)
Notepad++ 是一款免费开源、轻量快速的 Windows 文本编辑器,支持多标签、语法高亮、代码折叠与宏录制,体积小、启动快、资源占用低,兼容 x64/x32/ARM 架构,是程序员和文字工作者的高效利器。
1265 0
|
15天前
|
存储 人工智能 安全
千问办公官网入口网页版登录:qwenwork.cn 注册送2000积分、登录送100积分
阿里云千问办公(QwenWork)是AI智能工作平台,支持一句话生成PPT、表格、网页、视频及数据分析。个人免费版送2000积分+每日登录赠100分,含1GB存储、5个发布页;企业版198元/席/月起。阿里千问办公QwenWork官网:https://t.aliyun.com/U/0VCTGt 阿里AI工作平台,一句话完成数据分析、PPT 生成、视频剪辑、网页搭建等复杂任务
|
10天前
|
人工智能 开发者
Qoder CN 大使计划正式开启|无限创造,等你一起
全年免费积分、优先内测、活动支持与更多共创机会,邀请用 Qoder 把想法变成现实的你。
670 6

热门文章

最新文章