如何获取集合的第 n 个元素
2022-09-04 21:42:03
更具体地说:如何获取LinkedHashSet的第n个元素(具有可预测的迭代顺序)?我想检索插入到其中的第n个元素(该元素尚不存在)。Set
使用 :List
List<T> list = new ArrayList<T>(mySet);
T value = list.get(x); // x < mySet.size()
或方法:toArray(T [] a)
T [] array = mySet.toArray(new T[mySet.size()]);
T value = array[y]; // y < mySet.size()
除了(可能轻微的)性能差异之外,还有什么需要注意的吗?有没有明显的赢家?
编辑 1
铌:为什么我想要最后插入的元素并不重要,重要的是我想要它。专门选择LinkedHashSet是因为它“定义了迭代顺序,即元素插入集合的顺序(插入顺序)。请注意,如果将元素重新插入到集合中,则广告顺序不受影响。
编辑 2
这个问题似乎已经演变成讨论任何实施是否能够保留原始广告顺序。因此,我在 http://pastebin.com/KZJ3ETx9 上放置了一些简单的测试代码,以表明是的,LinkedHashSet确实保留了其Javadoc声明的插入顺序(与其迭代顺序相同)。Set
编辑 3
修改了问题的描述,以便每个人都不会太专注于检索最后一个元素(我最初认为问题的标题足以提示 - 显然我错了)。Set