map 遍历取key遇到的问题 --jdk1.6

import com.alibaba.fastjson.JSONObject;

import com.jd.data.util.JsonUtils;

import java.util.ArrayList;

import java.util.List;

import java.util.Map;

public class Test {

    public static void main(String[] args){

//注释中的代码遍历不会有问题

//        Map<Long,Map<String,Object>> map = new HashMap<Long,Map<String,Object>>();

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

//        subMap.put("num",1);

//        map.put(112345l,subMap);

//此种方式生成的map采用第一种方式直接遍历会出现类型转换异常

        String skuMaps = "{12345789:{\"num\":1}}";

        Map<Long,Map<String,Object>> map = JSONObject.parseObject(skuMaps, Map.class);

        List<Long> skuIds = new ArrayList<Long>();

//遍历一

        for(Object key : map.keySet()){

                if(key instanceof Long){

                    skuIds.add((Long)key );

                }

            }

//遍历二

        Set set = map.keySet();

            for(Iterator iterator = set.iterator();iterator.hasNext();)

            {

                Integer s1 = (Integer)iterator.next();

                skuIds.add(Long.valueOf(s1));

            }

        System.out.println(JsonUtils.writeValue(skuIds));

    }

}

猜你喜欢

转载自zxh56964106.iteye.com/blog/2290031