Java Iterators或Enhanced Loops是否按照创建顺序保证结果?

时间:2012-02-27 21:04:27

标签: java sorting

Java IteratorsEnhanced Loops按插入顺序保证结果?如果答案需要,请详细说明Java如何处理订购。

有问题的实际数据结构示例:

1. Vector<String[]>
2. Iterator<String[]>

但我的问题是对所有各种数据结构感到好奇。

问题涉及Oracle SQL数据库结果。我运行一个有序查询,我希望按照这个确切的顺序访问数据。

4 个答案:

答案 0 :(得分:6)

Java没有为这些提供任何保证,但在某些情况下,项目将按特定顺序迭代:

  • 列表和数组将按顺序迭代元素
  • 排序顺序的TreeSet
  • 创建顺序中的LinkedHashSet

这一切都取决于你正在迭代什么,以及特定的实现。

答案 1 :(得分:2)

是和否。

这取决于集合的类型。例如 - ArrayList将按添加顺序迭代,但set不会。

答案 2 :(得分:1)

我认为你的意思是“插入顺序”而不是“创造”。如果是这样,那么对于像ArrayList这样的有序集合,答案是肯定的。

答案 3 :(得分:1)

增强循环只是像Java运行时一样使用迭代器。 总答案是否定的。例如,当使用SortedSets或HashSets和...时,检索项目的顺序与向集合添加项目的顺序不同。

列表是集合,应保留放入其中的项目的顺序。