如何在键为对象时访问哈希映射的键

3

我似乎无法弄清如何访问我的哈希表的值。

基本上我想做的是创建一个哈希表,其中一个值是类似json风格的数组。如果这有意义的话?

所以我想要像这样的东西 hash{key: value1, value2, value3, [number1,number2]}

并且能够像这样访问它(伪代码:)hash.get(3).get(1)

public class WebSearch {

readFile.ReadFile xfile = new readFile.ReadFile("inputgraph.txt");
HashMap webSearchHash = new HashMap();
ArrayList belongsTo = new ArrayList();
ArrayList keyphrase = new ArrayList();


public WebSearch() {




}


public void createGraph()
{
    HashMap <Object, ArrayList<Integer> > outlinks = new HashMap <Object, ArrayList<Integer>>();
    for (int i = 0; i < xfile.getNumberOfWebpages(); i++ )
    {
        keyphrase.add(i,xfile.getKeyPhrases(i));
        outlinks.put(keyphrase.get(i), xfile.getOutLinks(i));

    }

}

keyphrases 是一个 ArrayList

这是我运行 System.out.print(outlinks); 后的输出:

{[education, news, internet]=[0, 3], [power, news]=[1, 4], [computer, internet, device, ipod]=[2], [university, education]=[5]}

如果我想要得到这样的结果:[education, news, internet]=[0, 3],应该怎么做?

我尝试了:

outlinks.get(xfile.getKeyPhrases(i))

例如,xfile.getKeyPhrases(0) 将返回 [education, news, internet]


1
即使它们声明类型为Object,HashMap仍使用equals和hashCode方法来处理实际的键对象。它们的类是什么?它不是Object,因为输出结果并非来自Object的toString方法。 - Patricia Shanahan
4个回答

1
你可以首先获取地图的键集(Map.keySet());outlinks.keySet() 然后,你可以使用这些键在你的地图上获取你的条目(键的值)。

0
你没有发布足够的代码来清楚地了解你的问题,但是看看 Map 的 Javadocs。您可以通过迭代 outlinks.values() 来获得所需内容。

0

0

您可以使用Map.keySet()方法访问任何HashMap的键。

还要注意,java.util.HashMap是无序的。 HashMap不保证地图的顺序;特别是,它不保证顺序会随时间保持不变。

您想重新查看HashMap的结构,您的键是ArrayList


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接