【发布时间】:2014-03-06 00:28:05
【问题描述】:
为新手问题道歉,但是以相反的顺序获得Set(比如LinkedHashSet)的正确方法是什么?对于Collections,有Collections.reverse(Collection c),但是对于带有有序元素(如LinkedHashSet)的Set,如何做到这一点?
【问题讨论】:
-
A
Set没有订单。你能澄清一下吗?此外,reverse采用List。 -
好吧...我的意思是
LinkedHashSet(已订购)。扭转它的最佳方法是什么?我是否需要获取迭代器并对其进行迭代,还是有更聪明的方法? -
@SotiriosDelimanolis 在 Java 中,
TreeSets 将他们的项目按排序顺序保存。要以相反的顺序获取元素,您可以使用descendingSet()方法。对于LinkedHashSet,请参阅此答案:stackoverflow.com/questions/10741902/… -
一个
LinkedHashSet不是有序它是Linked。如果您想以相反的插入顺序遍历项目,请使用Iterator。 -
@BoristheSpider 这真的取决于你所说的“有序”。
TreeSet维护“排序”顺序,而LinkedHashSet维护插入顺序(因此确实具有可预测的迭代顺序。)
标签: java