1

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

4

2 回答 2

3

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

序列化适用于。具体来说,ObjectOutputStream可以包装任何OutputStream. 如果你想执行内存中的序列化,你可以ByteArrayOutputStream在这里使用。

同样在输入端。

于 2013-01-23T11:19:49.733 回答
0

您可以使用 Java 序列化机制将 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 中的键和值都必须是可序列化的,否则它将不起作用

于 2013-01-23T11:29:10.713 回答