map遍历问题

2019-03-25 13:45|来源: 网路

有一个map如下:
map.put(key,value);
key =components
value= {
component_1={backurl_1=xxxxxxxxxxx, backdate_1=2010-10-21, backname_1=back1},
component_2={backdate_2=2010-10-21, backurl_2=xxxxxxxxxxx, backname_2=back1}
      }

解析value下面的component_1 component_2,然后遍历下面的backurl_1、backdate_1、backname_1,求解.

问题补充:
flootball 写道
component_1把这个抽象成一个类不就得了。!
枚举一次就好了。



不是的,我是写的一个xml的遍历,刚上面只是一个判断,包含很多结果分支,呵呵.

问题补充:
pwc_pengwenchao 写道
 public static void main(String[] args)
    {
        Map<String, Object> map = new HashMap<String, Object>();

        Map<String, Object> nextMap = new HashMap<String, Object>();

        Map<String, Object> nextMap1 = new HashMap<String, Object>();

        map.put("components", nextMap);

        nextMap.put("component_1", nextMap1);

        nextMap1.put("backurl_1", "xxxxxxxxxxx");
        nextMap1.put("backdate_1", "010-10-21");
        nextMap1.put("backname_1", "back1");

        nextMap1 = new HashMap<String, Object>();
        nextMap.put("component_2", nextMap1);

        nextMap1.put("backdate_2", "2010-10-21");
        nextMap1.put("backurl_2", "xxxxxxxxxxx");
        nextMap1.put("backname_2", "back1");


        for (Entry<String, Object> entry : map.entrySet())
        {
            System.out.println("key = " + entry.getKey());
            for (Entry<String, Object> entryi : ((Map<String, Object>) entry
                    .getValue()).entrySet())
            {
                System.out.println("key = " + entryi.getKey());
                for (Entry<String, Object> entryj : ((Map<String, Object>) entryi
                        .getValue()).entrySet())
                {
                    System.out.println(entryj.getKey() + " = "
                            + entryj.getValue());
                }

            }
        }

        // map.put(key,value);
        // key =components
        // value= {
        // component_1={backurl_1=xxxxxxxxxxx, backdate_1=2010-10-21,
        // backname_1=back1},
        // component_2={backdate_2=2010-10-21, backurl_2=xxxxxxxxxxx,
        // backname_2=back1}
        // }
    }


不知道这是不是你想要的。



嗯,虽然不全对,但是思路参考了,是自己写的一个xml的遍历程序,里面可能有很多的分支,下午头都乱了,呵呵
自己调整就可以了,忘记加((Map<String, Object>)类型转换了,遍历的时候,谢谢!

相关问答

更多
  • 你逻辑有错, int key = it.next().getKey(); String value = it.next().getValue(); 一次输出中连续执行两次 it.next(). 首先第一次 it.next().getKey();得到的key是1,接下来 it.next().getValue();已经调到下一条记录并获取它的value值,如此类推,你得到的结果应该为 1=b 3=d 解决办法:你把it.next().赋给一个变量,那在每次输出中it.next().只执行一次,结果就正确了
  • mybatis 遍历map实例 map 数据如下 Map >. 测试代码如下: public void getByMap(){ Map > params=new HashMap >(); List orgList=new ArrayList (); orgList.add(10000003840076L); orgList.add(10000003840080L); List roleList=new ArrayList (); roleList.add(10000000050086L); roleList ...
  • 在Java中如何遍历Map对象 How to Iterate Over a Map in Java 在java中遍历Map有不少的方法。我们看一下最常用的方法及其优缺点。 既然java中的所有map都实现了Map接口,以下方法适用于任何map实现(HashMap, TreeMap, LinkedHashMap, Hashtable, 等等) 方法一 在for-each循环中使用entries来遍历 这是最常见的并且在大多数情况下也是最可取的遍历方式。在键值都需要时使用。 [java] view plain ...
  • 方法一 在for-each循环中使用entries来遍历 这是最常见的并且在大多数情况下也是最可取的遍历方式。在键值都需要时使用。 Map map = new HashMap (); for (Map.Entry entry : map.entrySet()) { System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue()); } 注意:for-each循环在java 5中被引入所以该方法只能应用于java 5 ...
  • java Map 怎么遍历[2023-05-31]

    给你个列子 static void testMap(){ Map map=new HashMap(); //关键字唯一,重复关键字则用最新的覆盖原来的关键字所对应的值;值可以重复 map.put("cn", "china"); map.put("en", "english"); map.put("us", "USA"); map.put("ge", "germany"); map.put("en", "xxxxxxx"); map.put(1, "test"); map.put(null, "abc"); ...
  • [mw_shl_code=java,true]//最常规的一种遍历方法,最常规就是最常用的,虽然不复杂,但很重要,这是我们最熟悉的,就不多说了!!public static void work(Map map) {Collection c = map.values();Iterator it = c.iterator();for (; it.hasNext();) {System.out.println(it.next());}} //利用keyset进行遍历,它的优点在于可以根据你所想要的key值得到你想 ...
  • 首先遍历burgcode的种类,例如1001.1002再根据种类进行遍历,相加,思路就是这样
  • 这是不可能的!
  • java Map 怎么遍历[2024-02-17]

    1、map.entrySet()获取键值对列表,即a=1; 2、map.values()获取value集合 3、map.keySet()获取key集合;并通过key获取对应value的值 public static void main(String[] args) { java.util.Map map = new HashMap<>(); map.put("a", "1"); map.put("b", "2"); map.put("c", "3"); map.put("d", "4"); map.put( ...
  • <#if clientSourceData?exists> <#list clientSourceData?keys as key> ${key} ${clientSourceData.get(key)} 直接嵌套在循环里面即可