在Java 5中,如果我有一个Set,我将两个对象添加到Set.当我检索对象时,它会以我添加的顺序返回给我吗?我无法找到答案.它取决于我使用的Set实现吗?
是的,这取决于您使用的实施方式.例如,LinkedHashSet将保留插入顺序:
Set接口的哈希表和链表实现,具有可预测的迭代顺序.此实现与HashSet的不同之处在于它维护了一个贯穿其所有条目的双向链表.此链接列表定义迭代排序,即元素插入集合(插入顺序)的顺序.请注意,如果将元素重新插入到集合中,则不会影响插入顺序.(如果s.contains(e)在调用之前立即返回true,则调用s.add(e)时,将元素e重新插入到集合中.)
......但HashSet不会:
它不能保证集合的迭代顺序; 特别是,它不保证订单会随着时间的推移保持不变.该类允许null元素.
| 归档时间: |
|
| 查看次数: |
1078 次 |
| 最近记录: |