- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我知道这可能不是最好的办法,而且我没有正确使用这个对象,但这是我的问题。我想使用 ConcurrentSkipListMap 并已声明我的 map :
private ConcurrentSkipListMap<Date,T> map
有时,我需要使用“null”值初始化此 map 的元素,这意味着在给定的一天没有数据。对于有效的常规哈希表,您可以插入与键关联的空值。当获取特定日期的值时,我只需测试它是否为空。对于 ConcurrentSkipListMap 来说,这是行不通的。它抛出空值异常。在查看源代码时,我了解到这是节点的内部表示,其中 null 值仅意味着列表中的节点已死亡。
我知道对此的最佳答案是,在这种情况下不要添加日期......但出于多种原因,我仍然需要这样做。无论如何,对我来说,测试键是否存在与测试与键关联的空值相同。我也无法添加虚拟值,因为我无法区分该虚拟值和真实值(例如,如果我的模板类是整数,即使我选择 -1 作为标志对于空,我将无法看到当天实际值为 -1 的差异)。
我之前使用过
private SortedMap<Date,T> map = Collections.synchronizedSortedMap(new TreeMap<Date,T>(new BasicDateComparatorIncreasing()));
但我喜欢 ConcurentSkipListMap 实现 ConcurrentNavigableMap 接口(interface)这一事实
有没有办法实现我想做的事情?
谢谢
最佳答案
怎么样
private ConcurrentSkipListMap<Optional<Date>, T> map;
?
然后添加元素:
map.put(Optional.fromNullable(date), value);
访问 key 时检查 Optional.isPresent()
并调用 Optional.get()
。
http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/base/Optional.html
关于java - 在 ConcurrentSkipListMap Java 中插入空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24200750/
我尝试使用以下行从 ConcurrentSkipListMap 获取键数组: myArray=(String[])myMap.keySet().toArray(new String[myMap.siz
我有一个包含键和值的 ConcurrentSkipListMap。保持按键的顺序非常重要。 当我尝试在特定位置插入新值时出现问题。插入值的唯一方法是 put() ,将该值放在最后一个位置。 使用rep
我有这个容器 private ConcurrentMap> users; 在构造函数中初始化 users = new ConcurrentHashMap<>(); 对于每个用户,它都会得到 new C
我需要为 ConcurrentSkipListMap 定义一个自定义比较器,我使用此代码根据“LogicalClock”进行排序,但结果并不符合我的预期。我像这样创建 key :“ClientId”+
假设我有多个线程向 ConcurrentSkipListMap 添加条目和从中删除条目。我有另一个线程在预定义的时间段内运行集合并使用迭代器更新它的数据。考虑到并发访问如何做到这一点。如何迭代?迭代器
我有 N 个添加值的线程和一个删除线程。我正在考虑如何同步添加到现有值列表和删除列表的最佳方法。 我猜下面的情况是可能的: thread 1 checked condition containsKe
我正在使用“ConcurrentSkipListMap”(因为我的环境将是多线程的)和“比较器”根据其 ID 和日期对插入对象进行排序。在“TestObject”中,其名称将是唯一的。所以我用它作为
我有一张带有一些值的 map 。 public ConcurrentMap data = new ConcurrentSkipListMap<>(); 我如何反向迭代它? Java 迭代器似乎没有 n
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: When should I use ConcurrentSkipListMap? 我的意思是,如果 java
在 Java 中,ConcurrentHashMap 可以提供更好的 multithreading 解决方案。那我应该什么时候使用ConcurrentSkipListMap?是冗余吗? 这两者之间的多
最近在探索 ConcurrentSkipListMap 时,我浏览了它的实现,发现它的 put 方法不是线程安全的。它在内部调用 doPut 来实际添加项目。但我发现这个方法并没有使用任何类似于Con
我有一个程序,其中许多线程将其请求发送到 PriorityQueue 。随后,他们等待 ConcurrentSkipListMap 的回复。 。有一个线程发布了 ConcurrentSkipListM
假设我有一个 ConcurrentSkipListMap,我通过给它一个比较器来构造它,然后向其中添加几个键值对。当我向映射添加键时,根据设计,它会根据给定构造函数的比较器或其自然顺序对值进行排序。但
我对理解 ConcurrentSkipListMap 的并发性有疑问。 我有以下声明: ConcurrentSkipListMap> map 是不是也可以像下面这样使用呢? ConcurrentSki
ConcurrentSkipListMap.compute(K, BiFunction) 的 Javadoc状态: Attempts to compute a mapping for the spec
我最近不得不完成其中一项工作面试编码练习。基本上它需要实现一个消息队列类: 根据传入消息中的优先级字段维护项目。 消息可以属于高、中、低三个优先级类别之一,由 message.priorityFiel
我有一个ConcurrentSkipListMap。我需要删除低于 key 的元素。 下面是我如何执行它: private ConcurrentNavigableMap myObjectsMap =
为什么 ConcurrentSkipListMap 没有构造函数允许我们设置初始容量,如HashMap是吗? 最佳答案 因为这个数据结构是由多个 LinkedList 支持的初始容量构造函数参数对谁来
这篇文章的摘要:我有一组订购的物品,它们的顺序可能会随着时间的推移而改变。我需要能够从多个线程遍历这个集合,每个线程可能还想更新项目的顺序。 比如多个线程需要访问String以某种任意排序顺序的键。它
我想根据 API 文档澄清一些关于 ConcurrentHashMap 与 ConcurrentSkipListMap 的内容。 根据我的理解 ConcurrentHashMap 保证了多线程插入的线
我是一名优秀的程序员,十分优秀!