Java中的列表数组

Java中的列表数组,java,arrays,list,object,Java,Arrays,List,Object,在Java中,如何创建一个数组,其中每个元素都是包含一对键的对象列表 然后给定这个数组的索引,我应该能够在索引处搜索列表,并检索相应的值 问题陈述 我有大约200万个网页名称,每个名称对应的是类别(一个或多个) 我可以使用一些散列函数将它们散列到10万,但很明显它们会发生冲突 我想用Java构建一个可以存储所有这些信息的数据结构,然后给出一个网页,然后在散列之后,给出索引,我可以找到网页的类别 听起来你想要的是一组地图: List<Map<KeyType, ValueType>

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

然后给定这个数组的索引,我应该能够在索引处搜索列表,并检索相应的值

问题陈述

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

我可以使用一些散列函数将它们散列到10万,但很明显它们会发生冲突


我想用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:您应该使用
哈希映射
,并使用
名称
作为键。这样您可以获得非常快速的查找。如果这不是您想要的,请花时间改进您的问题描述。