3

MapHashMapおよびLinkedHashMapを AutoBean ファクトリのタイプとして使用してみましたが、シリアル化した後は常に初期要素の順序が変更されています。

ArrayList注文データを保持する追加を送信したくありません。AutoBean に順序を維持させる方法はありMapますか?

4

2 に答える 2

1

どうやら、少なくとも GWT 2.4 では、純粋な Java の動作とは対照的に、LinkedHashMap.clone()GWT は a を返します。HashMapAutoBean はおそらく、最終的に順序を台無しにする clone() に依存しています。

于 2012-01-19T15:04:11.657 に答える
1

http://docs.oracle.com/javase/6/docs/api/java/util/Map.html

マップの順序は、マップのコレクション ビューの反復子が要素を返す順序として定義されます。TreeMap クラスなどの一部のマップ実装は、その順序に関して特定の保証を行います。HashMap クラスなどの他のクラスはそうではありません。

MapGWT は に基づくクラスを変更しません。Mapまた、そのサブクラスの多くは、パフォーマンス上の理由から挿入の順序を保持していません。LinkedHashMapは、設計上、挿入順序を維持しますもちろん、 aから始めLinkedHashMapて、別のタイプの から構築しないと仮定すると、Map実際には挿入中にその順序が保持されず、LinkedHashMapが予想とは異なる順序になります。

とにかく最初の順序を維持する必要がある理由と、それが必要な場合に使用する理由はMap何ですか?

于 2011-12-05T18:47:30.850 に答える