Map
、HashMap
およびLinkedHashMap
を AutoBean ファクトリのタイプとして使用してみましたが、シリアル化した後は常に初期要素の順序が変更されています。
ArrayList
注文データを保持する追加を送信したくありません。AutoBean に順序を維持させる方法はありMap
ますか?
Map
、HashMap
およびLinkedHashMap
を AutoBean ファクトリのタイプとして使用してみましたが、シリアル化した後は常に初期要素の順序が変更されています。
ArrayList
注文データを保持する追加を送信したくありません。AutoBean に順序を維持させる方法はありMap
ますか?
どうやら、少なくとも GWT 2.4 では、純粋な Java の動作とは対照的に、LinkedHashMap.clone()
GWT は a を返します。HashMap
AutoBean はおそらく、最終的に順序を台無しにする clone() に依存しています。
http://docs.oracle.com/javase/6/docs/api/java/util/Map.html
マップの順序は、マップのコレクション ビューの反復子が要素を返す順序として定義されます。TreeMap クラスなどの一部のマップ実装は、その順序に関して特定の保証を行います。HashMap クラスなどの他のクラスはそうではありません。
Map
GWT は に基づくクラスを変更しません。Map
また、そのサブクラスの多くは、パフォーマンス上の理由から挿入の順序を保持していません。LinkedHashMap
は、設計上、挿入順序を維持します。もちろん、 aから始めLinkedHashMap
て、別のタイプの から構築しないと仮定すると、Map
実際には挿入中にその順序が保持されず、LinkedHashMap
が予想とは異なる順序になります。
とにかく最初の順序を維持する必要がある理由と、それが必要な場合に使用する理由はMap
何ですか?