Hash Table in Java

     





Dalam komputasi , tabel hash ( hash map ) adalah struktur data yang mengimplementasikan tipe data abstrak array asosiatif , struktur yang dapat memetakan kunci ke nilai . Tabel hash menggunakan fungsi hash untuk menghitung indeks , juga disebut kode hash , ke dalam larik ember atau slot , dari mana nilai yang diinginkan dapat ditemukan. Selama pencarian, kunci di-hash dan hash yang dihasilkan menunjukkan di mana nilai yang sesuai disimpan.



Idealnya, fungsi hash akan menetapkan setiap kunci ke bucket unik, tetapi sebagian besar desain tabel hash menggunakan fungsi hash yang tidak sempurna, yang dapat menyebabkan tabrakan hash di mana fungsi hash menghasilkan indeks yang sama untuk lebih dari satu kunci. Tabrakan seperti itu biasanya diakomodasi dalam beberapa cara.
Dalam tabel hash berdimensi baik, biaya rata-rata (jumlah instruksi ) untuk setiap pencarian tidak tergantung pada jumlah elemen yang disimpan dalam tabel. Banyak desain tabel hash juga memungkinkan penyisipan dan penghapusan pasangan kunci-nilai sewenang-wenang , pada ( diamortisasi) biaya rata-rata konstan per operasi.
Dalam banyak situasi, tabel hash ternyata rata-rata lebih efisien daripada pohon pencarian atau struktur pencarian tabel lainnya Untuk alasan ini, mereka banyak digunakan di berbagai jenis perangkat lunak komputer , terutama untuk array asosiatif , pengindeksan basis data , cache , dan set .

DATA HOSTED WITH ♥ BY PASTEBIN.COM - DOWNLOAD RAW - SEE ORIGINAL

  1. import java.util.*;
  2.  
  3. public class PhoneBook{
  4.      public static int hashFunction(String name){
  5.        int hash = 0;
  6.        for(int i=0; i<name.length(); i++){
  7.           hash = hash*10 + name.charAt(i);
  8.        }
  9.        hash = hash % 499;
  10.        return hash;
  11. }
  12.  
  13. public static void main(String args[]){
  14.        Hashtable<Integer, String> phonebook = new Hashtable<>();
  15.        List<String> names = new ArrayList<String>();
  16.        Scanner sc = new Scanner(System.in);
  17.  
  18.        int choice = -1;
  19.        String number;
  20.        String name;
  21.  
  22.        while(choice != 0){
  23.           System.out.println("What do you want to do?");
  24.           System.out.println("1. Add a contact");
  25.           System.out.println("2. Show a contact");
  26.           System.out.println("3. Delete a contact");
  27.           System.out.println("4. Show all contacts");
  28.           System.out.println("5. Exit");
  29.           choice = sc.nextInt();
  30.  
  31.           switch(choice){
  32.             case 1:
  33.               System.out.println("Add Phone Number:");
  34.               number = sc.next();
  35.               System.out.println("Name:");
  36.               name = sc.next();
  37.               names.add(name);
  38.               phonebook.put(hashFunction(name), number);
  39.               System.out.println("Added successfully.");
  40.               break;
  41.             case 2:
  42.               System.out.println("Name:");
  43.               name = sc.next();
  44.               number = phonebook.get(hashFunction(name));
  45.               System.out.println("Phone Number: " + number);
  46.               break;
  47.             case 3:
  48.               System.out.println("Name:");
  49.               name = sc.next();
  50.               names.remove(name);
  51.               phonebook.remove(hashFunction(name));
  52.               System.out.println("Removed successfully.");
  53.               break;
  54.             case 4:
  55.               if(phonebook.size() > 0){
  56.                  System.out.println(phonebook.size() + " contacts saved");
  57.                  for(String i : names){
  58.                     System.out.println(i + ": " + phonebook.get(hashFunction(i)));
  59.                   }
  60.               }
  61.               else
  62.                  System.out.println("You haven't added any contacts yet.");
  63.             }
  64.          }
  65.     }
  66. }


Komentar

Postingan populer dari blog ini

Tower of Hanoi - Java

Binary Search Tree

KUIS Akhir EPL