【发布时间】:2013-11-26 01:11:13
【问题描述】:
我有例如这些对:
key => name:
"name" => "myname1"
"height" => "myheight1"
"name" => "myname2"
"height" => "myheight2"
现在,如果我将所有这些都放入 Hashtable,那么第二个 name 和 height 键将覆盖第一个键 name 和 height 键名。我可以将它添加到两个不同的哈希表中,但在运行之前,我不知道这样的对会有多少,所以我不知道我需要多少个哈希表。那么如何将这些 paris 添加到列表中(在运行前不知道此类对的确切数量(例如,有时可能有三个名称键和两个高度键及其值等)。
所以当我添加所有这些值时,我需要在一个列表中显示如下:
list<list<Object>> = [[{name=myname1, height=myheight1}], [{name=myname2, height=myheight2}]]
例如,如果存在不同数量的此类对,例如两个名称和三个高度对:
list<list<Object>> = [[{name=myname1, height=myheight1}], [{name=myname2, height=myheight2}], [{height=myheight3}]]
注意:我从 xml 文件中获取这些对,因此它们在某种程度上是分组的,就像每次迭代我都会得到一组这样的对。例如
<main>
<group>
<name>myname1</name>
<height>myheight1</height>
</group>
<group>
<name>myname2</name>
<height>myheight2</height>
</group>
</main>
那么我怎样才能正确地将这样的对添加到列表中,这样键就不会相互覆盖,以后我可以从列表中得到任何我想要的对?
【问题讨论】:
-
考虑使用
List<Map<String,String>>。 -
考虑使用
List<Group>,其中 Group 是一个具有 name 属性和 height 属性的类。 Java 是一种面向对象的语言。定义和使用您自己的类。 -
或
Map<String,List<String>> -
@McDowell 好的,我会在列表中使用 Map,那么我需要使用哪些键?就像现在我没有看到一样。或者你只是建议在迭代时生成键,比如第一次迭代键是一个,第二个是两个等等?
-
@Andrius 键将是元素的本地名称(名称、高度等)。每个地图代表一个组。有一个组列表。
标签: java xml list arraylist hashtable