Joh*_*ohn 4 java iteration collections
如果我有一个哈希映射并重复遍历这些对象,那么我是否保证每次调用的顺序都相同?例如,以下打印两行彼此不同:
Map<String,Integer> map = new HashMap<String,Integer>()
{{ put("a", 1); put("b", 2); put("c", 3); }};
System.out.println(map);
System.out.println(map);
Run Code Online (Sandbox Code Playgroud)
这是集合和集合的一般情况吗?如果是这样,如果你必须以相同的顺序在同一个集合上迭代两次(不管是什么顺序),最好的方法是什么?我想转换成一个列表.
合同Map和Set不对迭代顺序做出任何保证,但是SortedSet和SortedMap(由TreeMap和实现TreeSet)的合同.
此外,即使未排序的实现通常也具有确定性,并且对于每个特定实例具有可重复的迭代顺序,只要它不以任何方式进行修改即可.但是,这是一个实现细节,不应该依赖.
| 归档时间: |
|
| 查看次数: |
1069 次 |
| 最近记录: |