[英]ConcurrentHashMap with add effect
我只是想用ConcurrentHashMap<String,String>
来获得添加效果,但是元素顺序混合了。 代码像...
ConcurrentHashMap<String,String>h=new ConcurrentHashMap<String,String>();
for(int i=0; i<10; i++)
{
h.put(""+Math.random(), ""+i);
}
Iterator<String> iterator=h.values().iterator();
while(iterator.hasNext())
{
System.out.println(iterator.next());
}
...在控制台中提供下一个值:
9
4
6
2
0
5
1
7
3
8
...所以我的问题是...
如果键是一些随机字符串,ConcurrentHashMap是否有办法获取原始元素顺序?
谢谢
使用LinkedHashMap
代替,它将保留插入顺序
Map接口的哈希表和链表实现,具有可预测的迭代顺序。
并使用
Collections.synchronizedMap(mapInstance)
参见Collections.synchronizedMap(mapINstance);
Map<K,V> map = Collections.synchronizedMap(new LinkedHashMap());
LinkedHashMap保持插入顺序。
Map接口的哈希表和链表实现,具有可预测的迭代顺序。 此实现与HashMap的不同之处在于,它维护贯穿其所有条目的双向链接列表。 此链表定义了迭代顺序,通常是将键插入映射的顺序(插入顺序)。 请注意,如果将密钥重新插入到映射中,则插入顺序不会受到影响。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.