1

バイトコードにその内容を含む HashMap を実装しようとしています。これは、コンテンツをシリアル化してから読み込むのと似ています。しかし、私の経験では、シリアル化はファイルに保存してから読み込む場合にのみ機能します。この実装はそれよりも高速である必要があります。

4

2 に答える 2

3

しかし、私の経験では、シリアル化はファイルに保存してから読み込む場合にのみ機能します。この実装はそれよりも高速である必要があります。

シリアル化はストリームで機能します。具体的にObjectOutputStreamは、任意のOutputStream. インメモリシリアライゼーションを実行したい場合は、ByteArrayOutputStreamここで使用できます。

入力側も同様。

于 2013-01-23T11:19:49.733 に答える
0

Java Serializationメカニズムを使用して、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 に答える