我希望在字节码中实现HashMap及其内容。这类似于我序列化内容然后读取它。但根据我的经验,序列化只能将它保存到文件然后读取它,我希望这个实现比这更快。
答案 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中的键和值都必须是可序列化的,否则它将不起作用