【发布时间】:2013-12-06 12:14:32
【问题描述】:
基本上HashSet后面的插入顺序是不保留的,但是我想在Java中以保留顺序的形式显示HashSet对象。
有可能吗?如果是的话,请您分享一些想法。
提前致谢
JP.
【问题讨论】:
-
只需使用 LinkedHashSet
标签: java
基本上HashSet后面的插入顺序是不保留的,但是我想在Java中以保留顺序的形式显示HashSet对象。
有可能吗?如果是的话,请您分享一些想法。
提前致谢
JP.
【问题讨论】:
标签: java
使用 LinkedHashSet 代替 HashSet。 LinkedHashSet 将维护插入顺序。
【讨论】:
对于 Set 有 LinkedHashSet,对于 Map 有 LinkedHashMap - 两者都保留了插入项目的顺序,尽管对性能的影响非常小。
还有TreeMap 和TreeSet 选项,它们不保留插入元素的顺序,而是按照指定的顺序(它们的自然顺序或比较器指定的顺序)保持它们。
【讨论】:
如果插入顺序很重要,也许你应该使用 ArrayList。
【讨论】:
使用LinkedHashSet它preserves的插入顺序。
Set<String> set = new LinkedHashSet<String>();
for(int i = 0; i <5; i++)
{
set.add( i+"" );
}
// insertion order is 0,1,2,3,4
for(String str : set)
{
System.out.println(str);
}
//output 0,1,2,3,4
【讨论】:
您可以使用LinkedHashSet,它会保留插入顺序。
【讨论】: