我想知道是否有可能创建一个哈希表向量?如何在java中执行哈希表的数组列表?
我试图
java.util.Hashtable<String, String>[] info = new java.util.Hashtable<String, String>();
,但还没有任何运气:(
感谢
我想知道是否有可能创建一个哈希表向量?如何在java中执行哈希表的数组列表?
我试图
java.util.Hashtable<String, String>[] info = new java.util.Hashtable<String, String>();
,但还没有任何运气:(
感谢
我想你想
ArrayList<Hashtable<String, String>> info = new ArrayList<Hashtable<String, String>>();
你可能想:
ArrayList<Hashtable<String, String>> info =
new ArrayList<Hashtable<String, String>>();
,这在某种程度上与类型推断和Guava这样的库来简化:
ArrayList<Hashtable<String, String>> info = Lists.newArrayList();
尽量确保您使用抽象的接口使用的是尽可能的集合。
List<Map<String, String>> info= new ArrayList<Map<String, String>>();
然后你就可以添加你的哈希表
Map<String, String> infoElement= null;
for(something in someOtherThing) {
infoElement= new Hashtable<String, String>();
// add your logic
info.add(infoElement);
}
@Stephen,感谢您的更正。 – 2011-05-18 17:41:31
我仍然有问题。我在一个for循环中有这个infoElement,每次我更新infoElement所有的info元素都会采用新的infoElement值,因为info.add方法只设置了一个指向infoElement的指针...... – Winter 2011-05-19 22:02:06
@Winter - 好吧所以你需要做的是创建为您希望添加和更新的下一个“infoElement”创建一个新的HashTable。如果你不确定哪些包含你正在使用的集合,那么集合中的集合可能会变得非常棘手。我在Hashes下用Hashes做了很多工作......相信我,记住你的深度真的很有趣。 – 2011-05-19 23:45:40
一个Vector
是List
和Hashtable
是Map
,所以你想要的是地图列表。
我建议你使用ArrayList
而不是Vector
和HashMap
代替Hashtable
,分别为(as discussed here和其他许多问题),但最重要的我建议你改变你的要求。
在大多数情况下,您需要列表地图而不是地图列表,如果您需要,我会使用众多可用的自定义实现之一,首先是Guava's Multimap
。
hi, Hashtable [] info = new Hashtable [size]; 不工作:S –
Winter
2011-05-19 21:37:32
@Winter:Bah,已经忘记了Java泛型与阵列的痛苦。将删除那一点。 – 2011-05-19 22:41:48