Java peek hashmap中的下一个元素

Java peek hashmap中的下一个元素,java,hashmap,queue,producer-consumer,Java,Hashmap,Queue,Producer Consumer,我有一个带有队列对象的hashmap,每次我查看对象时,我都想按照对象在队列中的位置顺序查看不同队列中的不同对象,通常是消费者-生产者问题 public class MainQueue { public static Map<Integer, SingleQueue> list = new ConcurrentHashMap<>(); public MainQueue() { } public Map getQueue() {

我有一个带有队列对象的
hashmap
,每次我查看对象时,我都想按照对象在队列中的位置顺序查看不同队列中的不同对象,通常是消费者-生产者问题

public class MainQueue {

    public static Map<Integer, SingleQueue> list = new ConcurrentHashMap<>();

    public MainQueue() {

    }

    public Map getQueue() {
        return this.list;
    }

    public void addToMainQueue(SendObject sfo) {
        int ohashcode = sfo.hashCode();
        if (!list.containsKey(ohashcode)) {
            list.put(ohashcode, new SingleQueue());
            list.get(ohashcode).addQueue(sfo);
        } else {
            list.get(ohashcode).addQueue(sfo);
        }

    }

    public SendObject getFromQueue() {

        ???
        return TempFax;
    }
}

---------HashMap-------------

423532,queue1:{1,2,3,4,5,6,7,8,9}

564898,queue2:{a,b,c,d,e}

039894,queue3:{x,y,z}

我怎样才能做到这一点?

根据您的问题,您对按FIFO顺序检索这些元素感兴趣,并且需要某种方法将它们分组为哈希代码

我建议将这些SendObject添加到像LinkedList这样的单个队列中,这样您可以逐个轮询()这些元素


如果您需要某种方法将不同的项目分组到类别中(或您的情况下的哈希代码),您可以在SendObject中添加一个类别字段,以便跟踪这些字段。

到底是什么问题?抱歉,我编辑了我的问题。作为旁注,您可能不应该使用哈希代码作为键。。。两个对象可以具有相同的哈希代码。通常,散列映射的要点是具有例如
映射
。散列代码是散列映射中队列的唯一键。位于这些队列中的所有对象。HashMaps没有“下一个元素”。您应该使用对象本身作为键,而不是其哈希代码。到目前为止,您的问题没有多大意义。HashMap包含数千个单队列,每个队列的出队列和入队列同时发生。我必须有序地挑选队列的第一个对象。每次另一个队列的第一个对象。
finally= 1,a,x,2,b,y,3,c,z,4,d,5,e,6,7,8,9