map 遍历取key遇到的问题 --jdk1.6 博客分类: java map遍历
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));
}
}