寻找存储HashMap的有效方法<key,arraylist <object>&gt;在SQL </key,arraylist <object>中

时间:2014-12-04 18:52:22

标签: java mysql sql arraylist hashmap

我想用SQL实现以下HashMap

HashMap<key, ArrayList<posting>>

发布类定义是:

public class Posting {

 public int documentId;
 public double score;

 public Posting(int docId, double scr){
     documentId = docId;
     score = scr;

 }
 }

然后我创建一个名为hashMap的表和列(keyId,key)。 keyId是自动递增Id。此外,每个键只在hashMap表中插入一次。

然后我创建一个名称发布的表。该表的列是(keyId,docId,score)。

您认为这是实现hashmap的有效(空间和时间)方式吗?

我的第二个想法是,我创建一个名为hashMap的表和列(key,postingName),key是主键。 postingName是包含列(docId,score)的表的名称。 在第二个实现中,我将每个数组列表转换为表。

你认为哪一个有效吗?

有没有更好的方法来实现这个hashmap?

请注意,我的hashmap的大小非常大。我想存储大约16.3G的数据。我只想将我的HashMap存储到Mysql数据库,然后将数据从数据库检索到HashMap。

感谢您的想法。

1 个答案:

答案 0 :(得分:1)

我认为创建一个包含三列(keyId,docId,score)的表是好的。然后,您可以从表中选择keyid,docid,得分来检索结果。然后,您可以在源代码中构建哈希表。或者你可以选择docid,从keyid = 40

的表中得分