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)来操作集合,代码会更加简洁高效。

相关文章
|
3天前
|
存储 弹性计算 供应链
阿里云服务器费用怎么算?CPU内存、公网带宽及存储收费标准(包年包月和按量付费)费用清单
阿里云ECS费用由计算(vCPU/内存)、存储(系统盘/数据盘)、公网带宽、镜像及快照等组成,支持包年包月(预付优惠)和按量付费(按秒计费)两种模式,适配长期业务或临时测试场景。实时价格因地域、规格而异,详见官网精准报价,阿里云云服务器ECS官网:https://t.aliyun.com/U/AZBUsA
|
3天前
|
缓存 人工智能 安全
2026 年阿里云双 11,通义千问 Qwen3.8-Max 详解,多模态能力、智能体任务、代码调用教程
对于企业研发团队和专业开发者,当业务需要处理复杂长文档、多步骤科研与金融任务、大型代码项目、多模态专业资料分析时,Qwen3.8-Max是旗舰级的模型选择。落地过程中,做好模型选型区分、提示词调优、上下文缓存配置、密钥安全管理,并且针对高风险业务增加人工复核与结果校验机制,就可以充分发挥模型强大的推理能力,搭建稳定可靠的企业级AI应用与智能体系统。随着模型持续迭代,Qwen3.8-Max的工具调用稳定性、长周期任务规划能力还会持续优化,持续拓展AI在专业领域的落地边界。
215 0
|
3天前
|
数据安全/隐私保护
【产品建议】建议增加项目级MCP
当前仅支持添加用户级MCP,暂不支持项目级MCP配置,存在权限管理粒度粗、协作灵活性不足等问题,建议产品后续迭代中补充项目级MCP能力,以提升多项目开发体验
55 6
|
3天前
|
人工智能 自然语言处理 BI
AI问数能不能交付?先让它回答同一套业务问题
本文提出智能问数可交付的实操验收方法:摒弃演示导向,构建固定问题集、冻结样例数据、建立人工基准,并系统验证歧义处理、权限控制与失败响应。强调“答对”需口径一致、可复核、边界清晰,以 Wyn 试点为例,指导企业界定真实可用范围。
|
缓存 运维 前端开发
快速定位进程性能瓶颈
这篇文章详细介绍了进程热点追踪的概念、业务痛点、解决方案以及实际案例分析,旨在帮助开发者和运维人员快速定位和解决系统性能瓶颈问题。
快速定位进程性能瓶颈
|
3天前
|
SQL 存储 算法
测试全绿,上线三周数据没入账——那个95%的兼容度报告,漏掉的是边界
迁移评估报告按对象计数,给出一个很高的兼容度百分比,但业务跑批数据对不上。根因往往不在“大功能不支持”,在求值时机、类型系统、三值逻辑这些末梢语义的边界差异——它们能通过语法翻译,却改变了执行行为。本文拆解六类末梢语义差异的典型表现,给出差分测试的落地方法:真实流量回放、按差异来源构造用例、发现一条差异固化一条回归用例。
|
3天前
|
存储 弹性计算 供应链
阿里云服务器价格计算器在哪查询?云服务器ECS费用包括哪些计费项?
阿里云ECS费用由计算(vCPU/内存)、存储(云盘)、公网带宽、镜像、快照等组成,支持包年包月(预付折扣高)和按量付费(秒级后付)。价格因地域、规格、时长及活动而异,精准报价请以官网为准。阿里云云服务器ECS官网:https://t.aliyun.com/U/AZBUsA
38 0
|
3天前
|
人工智能
豆包GEO优化信源进入3.0时代:内容从铺量到拼等级的账本
2026年7月豆包信源3.0升级,GEO优化从拼内容数量转到拼信源等级——T0-T3四级阶梯里T3直接归零,第三方商业站引用占比一年间从32%压到7%。这篇用个护小家电电商的视角算内容账:账房上要把投入从「产量」挪到「等级」,先把认证门票和权威背书做厚。先说结论——未认证软文不是权重低,是压根进不了门;电商内容账要按信源等级重新核算。
|
3天前
|
人工智能 安全 数据挖掘
阿里千问办公企业版和个人版有什么区别?价格、功能及使用差异及选择方法
阿里千问办公QwenWork分个人版与企业版:个人版面向个体用户,自助订阅、积分归己;企业版以组织为单位采购,享统一积分池、后台管理、安全合规及VPC部署能力。选型关键看使用主体(个人/组织)与管理需求。阿里千问办公QwenWork官网:https://t.aliyun.com/U/0VCTGt
98 0
|
3天前
|
机器学习/深度学习 人工智能 自然语言处理
【2026.10.19~10.23】阿里云百炼最新产品动态周报
阿里云百炼本周上新65款应用与11款MCP服务,覆盖科研、工程仿真、医学、法务、营销等垂直场景,支持论文写作、代码审查、PPT生成、视频重绘、企业尽调等专业任务,助力用户“一句话交办AI”。同步上线DeepSeek-V4.1-Flash模型,强化图文理解与Agent能力,并推出Token Plan个人版及多项优惠活动。
136 0

热门文章

最新文章