无法将元素添加到HashSet的顶部

4
我曾使用ArrayList在JSP中填充选项集。现在我不需要重复的元素了,所以我想使用HashSet。如果我使用HashSet,与ArrayList不同的是,如果我想在添加其他数据之前添加一个空白,则空白将显示在下拉框的末尾。当我使用ArrayList时,如果我将空白作为第一个元素添加,它会显示在开头,这正是我所需要的。
有人能帮我在HashSet中在开头添加空白吗?

3
一个 HashSet 不能保证其元素顺序随时间保持不变。请阅读 JavaDocs - Kai
2个回答

11

HashSet不是有序的Set版本。当您需要有序的Set时,请使用LinkedHashSet,当您需要排序的Set时,请使用TreeSet


4
正如提到的,HashSets是无序的。你需要采取以下方法之一:
  1. 使用排序变量(LinkedHashSet 根据插入顺序排序,或TreeSet 根据元素的自然排序排序)
  2. 基于特定用例的标准在迭代时进行排序

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接