gpt4 book ai didi

java - 是否有同步和排序的 map 对象(LinkedHashTable)?

转载 作者:搜寻专家 更新时间:2023-11-01 01:17:56 24 4
gpt4 key购买 nike

我正在创建一个 servlet.Filter 实现,其中我在将请求发送到 servlet 之前根据 IP 地址在数据库中查找用户 ID。

如果已经有来自同一 IP 地址的请求正在数据库中查找,我希望我的过滤器将传入请求存储到类似 map 的对象中。然后,当我从数据库获得响应时,我会将其应用于对该 IP 地址的所有请求,并将它们发送到 servlet。

类 map 对象需要同步,但也需要维护插入顺序,这样一旦我找到用户 ID,所有隐藏的请求“将按照接收它们的顺序处理”。

通过 API 有一个 LinkedHashMap 可以很好地保持顺序但不同步,HashTable 是同步的但没有给出任何迹象表明它会保持正确的顺序。

是否有某种类型的 LinkedHashTable 对象可以用于此目的?

我正在使用 Java 6。

最佳答案

您可以使用 synchronizedMap将任何 Map 实现包装在线程安全的容器中:

Map<K, V> synchronizedLinkedHashMap = Collections.synchronizedMap(new LinkedHashMap<K, V>());

你也可以使用 ConcurrentSkipListMap如果您想使用 Comparator 对元素进行排序。

关于java - 是否有同步和排序的 map 对象(LinkedHashTable)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11745700/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com