如何在哈希表中保持元素的顺序

Tho*_*lil 22 java hashtable linkedhashmap

我有一个哈希表.values()方法以某种顺序返回值,这些顺序与我插入的顺序不同.如何以与插入时相同的顺序获取值?使用LinkedHashmap是一种替代方法,但它不是同步的.

cle*_*tus 34

用一个LinkedHashMap.

接口的哈希表和链表实现Map,具有可预测的迭代顺序.这种实现的不同之处HashMap在于它维护了一个贯穿其所有条目的双向链表.此链接列表定义迭代排序,通常是键插入映射的顺序(插入顺序).请注意,如果将键重新插入地图,则插入顺序不会受到影响.(如果m.put(k, v)在调用 之前立即m.containsKey(k)返回,则调用 密钥k重新插入映射m true.)

结合Collections.synchronizedMap().

所以,例如:

Map<String, String> map = Collections.synchronizedMap(
  new LinkedHashMap<String, String>());
Run Code Online (Sandbox Code Playgroud)