Java中的列表数组
在Java中,如何创建一个数组,其中每个元素都是包含一对键的对象列表 然后给定这个数组的索引,我应该能够在索引处搜索列表,并检索相应的值 问题陈述 我有大约200万个网页名称,每个名称对应的是类别(一个或多个) 我可以使用一些散列函数将它们散列到10万,但很明显它们会发生冲突Java中的列表数组,java,arrays,list,object,Java,Arrays,List,Object,在Java中,如何创建一个数组,其中每个元素都是包含一对键的对象列表 然后给定这个数组的索引,我应该能够在索引处搜索列表,并检索相应的值 问题陈述 我有大约200万个网页名称,每个名称对应的是类别(一个或多个) 我可以使用一些散列函数将它们散列到10万,但很明显它们会发生冲突 我想用Java构建一个可以存储所有这些信息的数据结构,然后给出一个网页,然后在散列之后,给出索引,我可以找到网页的类别 听起来你想要的是一组地图: List<Map<KeyType, ValueType>
我想用Java构建一个可以存储所有这些信息的数据结构,然后给出一个网页,然后在散列之后,给出索引,我可以找到网页的类别 听起来你想要的是一组地图:
List<Map<KeyType, ValueType>> myList = new ArrayList<Map<KeyType, ValueType>>();
要在索引i
处的地图中搜索键
,请使用:
ValueType value = myList.get(i).get(key);
编辑:编辑后,我认为解决问题的方法是简单地使用
HashMap
。您将使用网页的名称作为键,类别名称列表作为值。无需实现您自己的哈希映射(听起来您就是这么做的)。听起来您想要的是一组映射:
List<Map<KeyType, ValueType>> myList = new ArrayList<Map<KeyType, ValueType>>();
要在索引i
处的地图中搜索键
,请使用:
ValueType value = myList.get(i).get(key);
编辑:编辑后,我认为解决问题的方法是简单地使用HashMap
。您将使用网页的名称作为键,类别名称列表作为值。没有必要实现您自己的哈希映射(听起来您就是这么做的)。既然您在描述中添加了信息,我建议您使用映射映射。一切都像@Björn Pollex所说的那样,但使用地图而不是列表来存储网页本身
还有一条建议。您可能希望使用LinkedHashMap
而不是常规HashMap,以便能够按照添加数据的相同顺序检索数据 既然您在描述中添加了信息,我建议您使用地图地图。一切都像@Björn Pollex所说的那样,但使用地图而不是列表来存储网页本身
还有一条建议。您可能希望使用LinkedHashMap
而不是常规HashMap,以便能够按照添加数据的相同顺序检索数据 比如一个ArrayList
?比如一个ArrayList
?我有一个对象网页
,它有名称
和类别
。列表中的每个元素都应该是网页
@Rohan:您应该使用哈希映射
,并使用名称
作为键。这样您可以获得非常快速的查找。如果这不是您想要的,请花时间改进您的问题描述。我有一个对象网页
,它有名称
和类别
。列表中的每个元素都应该是网页
@Rohan:您应该使用哈希映射
,并使用名称
作为键。这样您可以获得非常快速的查找。如果这不是您想要的,请花时间改进您的问题描述。