我似乎无法弄清楚如何访问我的hashmap的值
我基本上要做的是创建一个带有数组的hashmap作为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]
答案 0 :(得分:1)
您可以先获取地图的键集(Map.keySet()); outlinks.keySet()
然后,您可以在地图上使用这些键来获取您的输入(键值)
答案 1 :(得分:0)
您尚未发布足够的周围代码以完全清楚您的问题,但请查看the Javadocs for Map
。迭代outlinks.values()
可能会得到你想要的东西。
答案 2 :(得分:0)
我建议使用自定义对象并在集合中使用它。
您可以创建一个POJO / Bean类,并使用您想要的详细信息覆盖toString方法,例如迭代数组中的项目。 当您使用它来打印或显示时,将调用toString方法。
以下链接向您展示了一些想法:
答案 3 :(得分:0)
您可以使用Map.keySet()方法访问任何HashMap的键。
另请注意,java.util.HashMap
是无序的。 HashMap不保证地图的顺序;特别是,它不保证订单会随着时间的推移保持不变。
您希望重新查看HashMap的结构,并将ArrayList
作为密钥。