Java:编译内容的Hashmap

时间:2013-01-23 11:17:02

标签: java hashmap

我希望在字节码中实现HashMap及其内容。这类似于我序列化内容然后读取它。但根据我的经验,序列化只能将它保存到文件然后读取它,我希望这个实现比这更快。

2 个答案:

答案 0 :(得分:3)

  

但根据我的经验,序列化仅适用于将其保存到文件然后将其读入,我希望此实现比此更快。

序列化适用于。具体来说,ObjectOutputStream可以包装任何OutputStream。如果要执行内存中序列化,可以在此处使用ByteArrayOutputStream

同样在输入端。

答案 1 :(得分:0)

您可以使用Java Serialization mechanizm

将HashMap保存为字节数组
    Map map = new HashMap();
    map.put(1, 1);
    ByteArrayOutputStream bout = new ByteArrayOutputStream();
    ObjectOutputStream oos = new ObjectOutputStream(bout);
    oos.writeObject(map);
    oos.close();
    byte[] bytes = bout.toByteArray();
    // restore from bytes
    ObjectInputStream ois = new ObjectInputStream(new ByteArrayInputStream(bytes));
    map = (Map) ois.readObject();
    System.out.println(map);

输出

{1=1}

并非Map中的键和值都必须是可序列化的,否则它将不起作用