首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    开发:随笔记录之 Json字符串 与 List、HashMap对象的转换

    import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; import net.sf.json.JSONArray; import net.sf.json.JSONObject; import net.sf.json.JsonConfig; import net.sf.json.util.JSONUtils; public class JsonParser { /** * json字符串 转成 map * * @param jsonStr * @return * @throws Exception */ public static HashMap<String, JsonValue> parse(String jsonStr) { if (jsonStr == null || "".equals(jsonStr)) { return null; } HashMap<String, JsonValue> retMap = null; try { retMap = new HashMap<String, JsonValue>(); JSONObject json = JSONObject.fromObject(jsonStr); Map<String, Object> tmpMap = (Map<String, Object>) JSONObject .toBean(json, Map.class); for (Map.Entry<String, Object> entry : tmpMap.entrySet()) { JsonValue tmp = parseRec(entry.getValue(), 0); retMap.put(entry.getKey(), tmp); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return retMap; } /** * json字符串 转成 List * * @param jsonStr * @return * @throws Exception */ public static List<HashMap<String, JsonValue>> parseList(String jsonStr) { if (jsonStr == null || "".equals(jsonStr)) { return null; } List<HashMap<String, JsonValue>> retList = new ArrayList<HashMap<String, JsonValue>>(); JSONArray data = JSONArray.fromObject(jsonStr); for (int i = 0; i < data.size(); i++) { HashMap<String, JsonValue> retMap = new HashMap<String, JsonValue>(); JSONObject json = (JSONObject) data.get(i); Map<String, Object> tmpMap = (Map<String, Object>) JSONObject .toBean(json, Map.class); for (Map.Entry<String, Object> entry : tmpMap.entrySet()) { JsonValue tmp = parseRec(entry.getValue(), 0); retMap.put(entry.getKey(), tmp); } retList.add(retMap); } return retList; } /** * HashMap<String, JsonValue> map 转成 json字符串 * * @param jsonStr * @return * @throws Exception */ public static String parse(HashMap<String, JsonValue> m

    03

    数据结构面试题之位图查找

    有的人一看到这个题,很简单嘛最麻烦的就是从头遍历一遍的事情嘛. 不过要看清楚题! 40亿个无符号整数. 我们生活中1G内存占用的字节数1024*1024*1024为1073741824个字节.粗略就是10亿个字节. 而40亿个无符号整数是160亿个字节. 也就是这些数据存储下来需要16G的内存. 那么问题来了,普通的工作电脑的内存都4G,好点的就是8G. (如果你是16G内存光速吃鸡那么当我没说)我们可以发现这些数据的内存大于电脑的内存所以存储不下. 这个时候就很头大了,内存都存不下那么你怎么读取呢? 当然你说你直接去硬盘里面读.好! 没问题.从硬盘里面读取数据的速度和从内存中读取的速度根本没得比的.如果你的时间多也可以.不过我们有一个更厉害的方法就是我们的位图.位图就是给定一段连续的空间然后让这个空间的每一位都为0,再然后让每一个位表示一个数字.再然后当你这个数字出现的 时候将它对应的那个位->置为1.这样的话存储40亿个数据,也就是存储40亿个位.也就是5亿个字节.大概512MB的样子. 这样的话我们的内存存储这些数据也就是绰绰有余了.所以位图对于大数据的问题有着显著的效果。

    01

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券