Java 带队列的映射

Java 带队列的映射,java,map,queue,Java,Map,Queue,因此,我需要管理一组日志文件以获得唯一的ID。 对于我的地图,我希望唯一的ID是关键。但是,我需要管理的日志文件 每个ID可能包含多个条目 所以我的问题是,我将如何着手做这样的事情: Event e = new Event(); // get queue from map Queue<Event> eventQueue = map.get(e.ID); if(eventQueue == null){ // no queue existed in map with e.ID

因此,我需要管理一组日志文件以获得唯一的ID。 对于我的地图,我希望唯一的ID是关键。但是,我需要管理的日志文件 每个ID可能包含多个条目

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

Event e = new Event();

// get queue from map
Queue<Event> eventQueue = map.get(e.ID);

if(eventQueue == null){
    // no queue existed in map with e.ID
    // create new queue, add to map
    eventQueue = new LinkedList<Event>();
    map.put(e.ID, eventQueue); 
}

// add event in queue
eventQueue.add(e);
映射(唯一ID,(事件队列))

因此,每次我在日志中遇到一个新事件,该如何添加唯一ID 事件发送到相应密钥的队列

编辑: 例如:

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

类似的东西?

下面的代码片段将告诉您如何做。请注意,这段代码没有考虑并发性,所以如果您的代码是多线程的,您可能需要在访问map时添加一些同步逻辑。此外,所使用的基础队列数据结构将取决于您打算如何使用此队列

Queue<Event> queue;
if(map.contains(e.ID)){
  queue = map.get(e.ID);
} else{
  queue = new ArrayBlockingQueue<Event>();
  map.put(queue);
}
queue.add(e);
队列;
if(地图包含(e.ID)){
queue=map.get(e.ID);
}否则{
队列=新的ArrayBlockingQueue();
map.put(队列);
}
添加(e);

您可以这样做:

Event e = new Event();

// get queue from map
Queue<Event> eventQueue = map.get(e.ID);

if(eventQueue == null){
    // no queue existed in map with e.ID
    // create new queue, add to map
    eventQueue = new LinkedList<Event>();
    map.put(e.ID, eventQueue); 
}

// add event in queue
eventQueue.add(e);

eventQueue=newarrayblockingqueue();

声明
事件
对象的队列

Queue<Event> queue=new LinkedList<>();
..........
..........
下面介绍如何将事件添加到地图:

if(map.contains(id)){
  queue = map.get(e.ID);
  queue.offer(event);
}
else{
    queue=new LinkedList<>();
    map.put(id, queue);
    queue.offer(event);
} 
if(映射包含(id)){
queue=map.get(e.ID);
排队。报价(事件);
}
否则{
队列=新的LinkedList();
map.put(id,queue);
排队。报价(事件);
} 

地图
?是的,这就是我想要的!哈哈,我该如何将事件添加到队列中呢?您只需从地图中获取队列并将事件添加到itOh即可,谢谢您的帮助!:)
Map<String, Queue<Event>> map = new HashMap<>();
if(map.contains(id)){
  queue = map.get(e.ID);
  queue.offer(event);
}
else{
    queue=new LinkedList<>();
    map.put(id, queue);
    queue.offer(event);
}