我在遍历一个Map集合的时候
例如说一个Map里面有1,2,3,4,5五个元素
在遍历的时候,便利到1的时候我需要取1和2两个元素,在遍历2的时候要取2和3两个元素,以此类推
该怎么实现?

解决方案 »

  1.   

    Map m = new TreeMap();
    m.put("o1", 1);
    m.put("o2", 2);
    m.put("o3", 3);
    m.put("o4", 4);
    m.put("o5", 5);
    Set keySet = m.keySet();
    for (Iterator it = keySet.iterator(); it.hasNext();) {
    Object one = m.get(it.next());
    Object two;
    if (it.hasNext()) {
    two = m.get(it.next());
    }
    }
      

  2.   


    Map<Integer, Integer> map = new HashMap<Integer, Integer>();
    map.put(1, 1);
    map.put(2, 2);
    map.put(3, 3);
    map.put(4, 4);
    map.put(5, 5);
    for (Integer i : map.keySet()) {
    System.out.print(map.get(i));
    if(i+1<=map.size()){
    System.out.print(",");
    System.out.println(map.get(i+1));
    }
    }
      

  3.   

    Map<Integer, Integer> map = new HashMap<Integer, Integer>();
    map.put(1, 1);
    map.put(2, 2);
    map.put(3, 3);
    map.put(4, 4);
    map.put(5, 5);
    for (Integer i : map.keySet()) {
        System.out.printf("%d, %d\n", map.get(i), map.get(i==5 ? 1 : i+1));            
    }
      

  4.   

    +1,取2个的话就不适合用iterator了
      

  5.   

    要用LinkHashMap,HashMap是不保证迭代顺序的~!~!
      

  6.   


    由于map是以键值形式存储的,所以如果键是字符串的话要满足你的要求也必须是字符形式的数字
    稍加修改就行了:
    Map<String, Integer> map = new HashMap<String, Integer>();
            map.put("1", 1);
            map.put("2", 2);
            map.put("3", 3);
            map.put("4", 4);
            map.put("5", 5);
            for (String i : map.keySet()) {
            
                System.out.print(map.get(i));
                if(Integer.parseInt(i)+1<=map.size()){
                    System.out.print(",");
                    System.out.println(map.get(Integer.parseInt(i)+1+""));
                }else{
                 System.out.print(",");
                    System.out.println(map.get("1"));
                }
            }