我有两个关系A和B,都具有所有整数属性(A {a1,a2,a3,...} B {b1,b2,b3,...}。我将如何hash-在Java中加入这两个用户会选择两个加入属性我做两个哈希表然后继续加入它们吗?哈希加入java
哈希加入java
回答
那么,你们的关系有什么形式?它们是否在关系数据库中?如果是,只需使用一个SQL JOIN - 数据库管理系统可能会做一个散列连接,但你不必在乎那
如果他们在关系数据库中,为什么不
如果一些奇怪的是不是?约束阻止你使用最好的工具形成对于这项工作,是的,做一个哈希连接就像将每个元组放入一个加入属性的哈希表中,然后迭代一个条目并在另一个条目中查找匹配一样简单。 如果所有的数据都适合主内存,那就是。
只是为了澄清,我会把每个关系放入一个哈希表,每个属性将由连接属性键入。然后遍历每个散列表来寻找匹配? – 2010-04-20 14:43:49
@杰克:阅读维基百科文章。您只需要一个散列表来包含其中一个关系,然后再遍历另一个关系并查找散列表中连接属性的匹配。 – 2010-04-20 15:00:35
在这里他的一种方法来做一个哈希连接在Java 最好的是哈希表一个哈希表。
HashMap<Sting, Object[]> hash = new HashMap<String, Object[]>();
for (Object[] a : as) {
hash.put(a.a1, a);
}
然后在B中使用哈希循环并重新组合匹配。
ArrayList joined = new ArrayList();
for(Objec[] b : bs){
A a = hash.get(b.b1);
joined.add(new Object[]{a, b});
}
只有当A表的每个元素都有唯一的a1时,这才有效。
- 1. 如何在Java中“加入”哈希表?
- 2. Java MD5哈希不匹配.NET哈希
- 3. 哈希表在Java
- 4. Java的哈希表
- 5. Java哈希函数
- 6. 将Perl哈希加载到Java中
- 7. 插入哈希表
- 8. rails将哈希条件加入
- 9. 加入包含Java哈希映射对象的Kafka流
- 10. 的Java地图哈希码
- 11. Java哈希表实现
- 12. 是Java中的哈希表
- 13. Java数组哈希表
- 14. Java的哈希表问题
- 15. 哈希图排序java
- 16. 复制Java哈希表
- 17. Java哈希表填充
- 18. java哈希函数冲突
- 19. Java哈希集和树集
- 20. 形式的哈希表 - 在Java中的<key,哈希表>
- 21. 将Java哈希码组合成“主”哈希码
- 22. 红宝石哈希使用rjb的java哈希表
- 23. 将哈希推入数组
- 24. 在哈希表上插入
- 25. 如何在哈希红宝石中插入哈希
- 26. 哈希表键语法来引用嵌入哈希表元素
- 27. 添加ID到哈希
- 28. 加起来值哈希
- 29. Selenium添加哈希findElement
- 30. 加密哈希密码?
http://en.wikipedia.org/wiki/Hash_join – polygenelubricants 2010-04-20 05:55:48