Java 查看哈希图中的下一个元素

Java peek next element in hashmap

我有一个 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}

当我调用 getFromQueue 函数时,它应该 return '1' 在我打电话之后,return 'a' 在我打电话之后,return 'x'

finally= 1,a,x,2,b,y,3,c,z,4,d,5,e,6,7,8,9

我该怎么做?

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

我建议将这些 SendObject 添加到单个队列中,例如 LinkedList,这样您就可以一个接一个地 poll() 这些元素。

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