java - 带有队列的 map

标签 java dictionary queue

所以我需要管理一堆日志文件来获取唯一的 ID。 对于我的 map ,我希望唯一的 ID 成为关键。但是,我需要管理的日志文件 每个 ID 可能包含多个条目。

所以我的问题是我将如何去做这样的事情:

map (唯一 ID,(事件队列))

因此,每次我在日志中遇到唯一 ID 的新事件时,我该如何添加该事件 事件到相应键的队列。

编辑: 例如:

Event e = new Event();
map.put(e.ID, queue.add(e)); 

类似的事情?

最佳答案

下面的代码片段将让您了解如何做到这一点。请注意,此代码没有考虑并发性,因此如果您的代码是多线程的,您可能必须在访问映射周围添加一些同步逻辑。此外,使用的底层队列数据结构将取决于您打算如何使用该队列。

Queue<Event> queue;
if(map.contains(e.ID)){
  queue = map.get(e.ID);
} else{
  queue = new ArrayBlockingQueue<Event>();
  map.put(queue);
}
queue.add(e);

关于java - 带有队列的 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19473948/

相关文章:

Java Scanner hasNext() 跳过空行

python - 通过属性以及索引访问递归访问字典?

java - JBoss 5.1 中的异步数据库更新

java - 并发集合队列

java - 转换 EEE MMM dd HH :mm:ss ZZZ yyyy to YYYY-MM-dd JAVA

java - 将 java Class<> 转换为 kotlin 的 KClass<>

python - 检查给定值是否在嵌套字典中

javascript - 将对象的元素替换为其自己的子元素之一

c# - Azure 函数队列触发器。连接字符串中可能存在错误绑定(bind)配置?

java - 如何在 Java 8 中使用方法引用从非静态类调用非静态方法?