繁体   English   中英

Java中的列表数组

[英]Array of lists in Java

在Java中,如何创建一个数组,其中每个元素都是包含一对键的对象的列表。

然后给定该数组的索引,我应该能够在提供单个键值的索引处搜索列表,并检索对应的值。

问题陈述

我有大约200万个网页名称,与每个名称相对应的是类别(一个或多个)。

我可以使用一些哈希函数将它们哈希为1,00,000,但显然它们将是冲突。

我想用Java构建一个可以存储所有这些信息的数据结构,然后给定一个网页,然后在散列后给定索引,我可以找到该网页的类别。

听起来您想要的是一组地图:

List<Map<KeyType, ValueType>> myList = new ArrayList<Map<KeyType, ValueType>>();

这是添加地图的方式:

myList.add(new HashMap<KeyType, ValueType>());

这是您使用key作为键在索引i处为地图添加value方式:

myList.get(i).put(key, value);

要搜索key在索引地图i使用:

ValueType value = myList.get(i).get(key);

编辑:编辑后,我认为解决您的问题的方法是简单地使用HashMap<String, List<String>> 您将使用webpage名称作为键,并将类别名称列表用作值。 无需实现自己的哈希映射(听起来就是您正在做的事情)。

由于您已在说明中添加了信息,因此建议您使用地图。 一切都像@BjörnPollex所说的,但是使用map而不是list自己存储网页。

还有一个建议。 可能您将要使用LinkedHashMap而不是常规的HashMap以便能够按照添加数据的相同顺序来检索数据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM