以循环方式从MAP /任何集合中获取值

时间:2014-03-03 12:56:17

标签: java java-ee generics collections map

我有一个像这样的静态地图

static Map<String, Desttination> myMap = new HashMap<String, Desttination>();

泰国人已插入4或n个键值对。 ....

我的要求是每次我想逐一从地图中检索值。例如

当我第一次按getValue()时,它会返回Key1

的值
Next time it return the Value for Key2
Next time it return the Value for Key3
Next time it return the Value for Key4

下次再次返回Key1的值..

实现此目的的最佳方法是什么?是否有Java内置功能?

由于

1 个答案:

答案 0 :(得分:1)

对于您的要求,您可以使用Queue。只有在您填充队列后,您必须先从poll()获取值,然后在使用值后,通过调用Queue方法将值重新插入add()

    Queue<String> testQueue = new LinkedList<String>();

    testQueue.add("first");
    testQueue.add("understand");
    testQueue.add("problem");
    testQueue.add("then Ask");
    String fristValue = testQueue.poll();

    //Use your value;
    System.out.println(fristValue);

        //After you are done using it, resubmit it to the Queue
    testQueue.add(fristValue); 

    String secondValue = testQueue.poll();

    //same way....
    System.out.println(secondValue);

如果您真的使用String,请将key替换为您自己的封装类。但考虑到您的问题,key对您来说并不重要。

无论如何,如果它很重要,那么你的封装类将如下所示:

 class Entry{
    String key;
    String value;
    .....
   //Relevant methods.
 }