正如你和我发现的那样,LinkedHashMap并不是很有用。(它存在的意义是什么呢?)
我有一个哈希列表(从语义上讲,我认为它应该被称为hashedlist)
它有一个arraylist和一个hashmap。ArrayList存储键。
哈希列表.put(key, value)将执行以下操作
哈希列表.get(int position)将执行 - map.get(list.get(position))
这是我在2003年编写的HashVector和HashTree类的简化版,当时我需要在Java中模拟javascript和xml对象,并保留它们的顺序。然而,我没有时间或必要简化hashtree以进行gwt序列化。
再想一想,GWT如何实现哈希映射?我认为当我有时间时,我需要用faststringmap替换hashmap。Google的faststringmap不是公开的。它是为GWT编译器私人使用而设计的。因此,您必须复制其代码并将其更改为公共类:http://code.google.com/p/google-web-toolkit/source/browse/trunk/user/src/com/google/gwt/user/client/ui/FastStringMap.java
也许,GWT编译器会悄悄地使用它——我应该费心管理编译器,用faststringmap替换hashmap吗?
顺便说一句,
你仍然可以通过谷歌搜索“googlecode synthful hashtree”来寻找hashtree。
Hashtree允许您创建一个对象树,并允许您使用像路径一样的点约定xpath检索您的对象。
hashtree.get("hello.dolly.how.are.you");
hashtree.get("hello/dolly/how/are/you");
hashtree.put("hello/dolly/how/are/you", value);