У меня есть два отношения A и B, как со всеми целыми атрибутами (A {a1, a2, a3, ...} B {b1, b2, b3, ...}. Как бы я hash- присоединиться к этим двум в java? Пользователь будет выбирать два атрибута соединения. Я могу сделать два хеш-таблицы, а затем приступить к их объединению?Hash join in java
ответ
Ну, в какой форме ваши отношения имеют? Имеют ли они реляционную базу данных? просто использовать SQL JOIN - СУБД, вероятно, сделать хеширования, но вы не должны заботиться о том, что
Если они не в реляционной базе данных, поэтому не
Если какая-то странная.? ограничение препятствует формированию с помощью лучшего инструмента для задания тогда да, хэш-соединение так же просто, как положить каждый кортеж в хэш-таблицу с ключом атрибута join, а затем повторить записи одного и поиска совпадений в другом. Если все ваши данные вписываются в основную память.
Просто, чтобы уточнить, я бы поставил каждое отношение в хэш-таблицу, и каждый атрибут был бы привязан атрибутом join. Затем перебирайте каждую хэш-таблицу в поисках спичек? –
@Jack: прочитайте статью в Википедии. Вам нужна только одна хэш-таблица, которая содержит одно из отношений, затем переходите через другое отношение и ищите совпадения с атрибутом join в хэш-таблице. –
Здесь его способ сделать хеш-соединение в Java Лучше всего сделать хэш одной таблицы A с хэшмапом.
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. Hash a double in Java
- 2. Build hash hash in perl
- 3. SQL JOIN in JOIN
- 4. sql join in join?
- 5. Hash Join требуется полноэкранное сканирование
- 6. Duplicates in hash
- 7. Pluck hash in rails
- 8. hash funcion in C
- 9. sas hash join vs data step merge
- 10. self join in google app engine (java)
- 11. Ruby: Interpolate strings in hash creation
- 12. mysql join in insert in
- 13. pagination in php with hash in url
- 14. Hash Join не ведет себя как требуется
- 15. преимущества при указании HASH JOIN над тем, как делать JOIN?
- 16. Java порт Hash Дженкинс
- 17. Redis - hmset() in hash - эффективность
- 18. Hash of Hashes in Ruby
- 19. Mongoid hash property in FactoryGirl
- 20. Perl substitute strings in hash
- 21. Hash sign in Angular Routing
- 22. get16bits macro in hash function
- 23. hash sign in facebook urls
- 24. SAS Hash Table (Right Join/Union)
- 25. MySQL: hash index vs. table join
- 26. Mulitple full join in Postgres is slow
- 27. ThreadLocalRandom consistency in Fork/Join
- 28. join table in Flex
- 29. Self Join in Eloquent
- 30. DISTINCT in JOIN
http://en.wikipedia.org/wiki/Hash_join – polygenelubricants