Sets — Unique & Unordered

DEX455 - 编写 Apex 代码:数据类型、集合、变量与运算符完全参考

📄 第 87 页 🎬 视频课程

课程章节介绍

同学们,集合,在Apex里是一个很常用、也很重要的数据类型,我们花几分钟把它彻底搞清楚。 先说定义:集合就是一组元素,但有两个核心特征——,唯一,和,无序,。 唯一,意味着里面不能有重复的东西。如果你把一个已经存在的元素再加进去,Apex不会报错,而是悄悄忽略掉,就像什么都没发生一样。这一点和列表完全不同,列表是允许重复的。 无序,是说集合没有“第一个位置、第二个位置”这种索引概念,你不能像操作列表那样用下标去拿元素。所以,它不适合需要按顺序访问的场景。 那么底层是怎么实现的呢?有意思的是,在Apex里你完全不需要操心这些——内部统一用的是哈希结构。和Java不同,不用我们去选择到底是HashSet还是TreeSet,Apex帮我们做了这个决定。你只管用就好了。 不过要记住一个特别容易被误解的点:虽然叫“无序”,但,迭代顺序是确定的,。也就是说,如果你用for循环遍历同一个集合,只要里面的数据没变,每次运行遍历出来的顺序都是一样的。所以你可以放心地依赖这个顺序,它不是随机的。 最后,集合在Apex中最经典、最常见的用法,就是收集要在,SOQL的WHERE IN子句,里使用的那批唯一的记录ID。比如你从好几个地方拿到一堆ID,里面可能有重复的,你先把它们往集合里一塞,重复的自动就去重了,然后再拿这个集合直接写 `[SELECT ... FROM ... WHERE Id IN :mySet]`,干净又高效。这个场景下,集合就是天生的利器。 这样讲,是不是清晰多了?好,我们接着看下一个知识点。

关键词

Apex Salesforce Developer Guide