Pada praktikum ini, Anda akan membuat struktur data hash table secara sederhana dengan mengimplementasikan fungsi-fungsi utama dari Hash Table.
Langkah Percobaan
Buatlah kelas HashTable.
Tambahkan atribut size dan dataMap.
privateint size =7;privateNode[] dataMap;
Didalam kelas HashTable, tambahkan kelas internal Node. Perhatikan kelas internal Node. Kelas tersebut merupakan representasi node untuk menyimpan data dalam linked list.
Tambahkan method keys() pada hash table untuk mendapatkan semua key pada struktur data hash table. Method ini akan menggunakan ArrayList untuk menyimpan key. Pastikan Anda telah mengimport package ArrayList pada kelas HashTable.
publicArrayListkeys() {ArrayList<String> keys =newArrayList<>();for (int i =0; i <this.dataMap.length; i++) {Node current =this.dataMap[i];while (current !=null) {keys.add(current.key); current =current.next; } }return keys;}
Tambakan kode berikut pada main class untuk mengetahui apakah method keys() dapat berkeja dengan baik.
System.out.println( table.keys() );
Jalankan program dan amati hasilnya.
Pertanyaan
Apa keunggulan penanganan collision menggunakan metode separate chaining dibandingkan dengan motode linear probing?
Apa maksud dari potongan kode berikut pada method hash()?
int hash =0;for (int i =0; i <key.length(); i++) { hash = (hash +key.charAt(i) * i) %this.dataMap.length;}
Apa maksud dari potongan kode berikut pada method set()?
else {Node current =this.dataMap[hash];if(current.key== key) {current.value+= value;return; }while (current.next!=null) { current =current.next;if(current.key== key) {current.value+= value;return; } }current.next= newNode;}
Buatlah method remove() untuk menghapus data berdasarkan key.