"myname1" "height" => "myheight1" "name" => "myname2" "height" => "-6ren">
gpt4 book ai didi

Java - 将哈希表划分为列表

转载 作者:行者123 更新时间:2023-11-29 03:28:01 26 4
gpt4 key购买 nike

例如,我有这些对:

key => name:

"name" => "myname1"
"height" => "myheight1"
"name" => "myname2"
"height" => "myheight2"

现在,如果我将所有这些放入 Hashtable,那么第二个 nameheight 键将覆盖第一个键 name height 键名。我可以将它添加到两个不同的哈希表中,但在运行前,我不知道会有多少这样的对,所以我不知道我需要多少个哈希表。那么如何将这些巴黎添加到列表中(在运行时之前不知道此类对的确切数量(例如,有时可能有三个名称键和两个高度键及其值等)。

所以当我添加所有这些值时,我需要在列表中显示如下:

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<Group> groups = new ArrayList<Group>();

其中 Group 定义为

public class Group {
private final String name;
private final int height;

public Group(String name, int height) {
this.name = name;
this.height = height;
}

// getters are left as an exercise to the reader
}

(根据高度的表示,您可能需要使用除 int 之外的其他类型)。

编辑

另一种选择是使用动态语言,例如 Groovy,它使此类任务变得更加容易(因为您不必跟踪 XML 文档结构)。这是一个例子:

http://groovyconsole.appspot.com/edit/1445001

关于Java - 将哈希表划分为列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19953699/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com