3

我尝试过使用Map,HashMapLinkedHashMap作为 AutoBean 工厂的类型,并且总是在序列化之后改变初始元素的顺序。

我不想发送ArrayList包含订单数据的附加信息。有没有办法强制 AutoBean 保持秩序Map

4

2 回答 2

1

显然,至少在 GWT 2.4 中,LinkedHashMap.clone()在 GWT 中返回 a HashMap,与纯 Java 行为相反。AutoBean 可能依赖于 clone() ,它最终弄乱了顺序。

于 2012-01-19T15:04:11.657 回答
1

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

地图的顺序定义为地图集合视图上的迭代器返回其元素的顺序。一些地图实现,如 TreeMap 类,对它们的顺序做出特定的保证;其他的,比如 HashMap 类,不这样做。

GWT 不对Map基于 - 的类进行任何更改。Map由于性能原因,它的许多子类不保持插入顺序。LinkedHashMap,按照设计,确实保持其插入顺序。也就是说,当然,假设您a开始LinkedHashMap而不是从另一种类型构造它,Map在插入过程中实际上可能不会保留其顺序,从而导致LinkedHashMapa 的顺序与您预期的不同。

我想知道为什么您仍然需要保留初始订单,Map如果这是您想要的,您为什么要使用?

于 2011-12-05T18:47:30.850 回答