我想用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。
感谢您的想法。
答案 0 :(得分:1)
我认为创建一个包含三列(keyId,docId,score)的表是好的。然后,您可以从表中选择keyid,docid,得分来检索结果。然后,您可以在源代码中构建哈希表。或者你可以选择docid,从keyid = 40
的表中得分