Hashing in Java: Panduan Lengkap – Codewithaden

Dalam hashing, ada fungsi hash yang memetakan kunci ke beberapa nilai. Tetapi fungsi hashing ini dapat menyebabkan tabrakan di mana dua atau lebih tombol dipetakan ke nilai yang sama. Hashing rantai menghindari kecelakaan itu.

Idenya adalah membuat setiap sel HABTABLE Tunjuk ke daftar catatan catatan yang memiliki nilai fungsi hash yang sama.

Hashing di Java

Java Hashing adalah teknik yang digunakan untuk memetakan nilai ke kunci, yang membuatnya mudah untuk mengambil nilai dengan hanya memasukkan kunci. Keuntungan utama menggunakan hashing di Java adalah bahwa ia mengurangi kompleksitas waktu dari program apa pun dan memungkinkan waktu eksekusi operasi penting untuk tetap konstan bahkan untuk sisi yang lebih signifikan yang diberikan.

Tetapi masalah utama dari fungsi hashing adalah bahwa hal itu mengarah pada tabrakan karena dua atau lebih tombol dapat menunjuk pada nilai yang sama. Jika Anda ingin menghindari rantai ini, Hashing terutama digunakan. Jadi, untuk memasukkan nilai dalam tabel hash, persyaratan utama adalah indeks hash yang dihitung menggunakan rumus.

Hashindex: Kunci%Number_of_items

Mari kita terapkan hashing dengan cara berikut menggunakan Java.

Menerapkan hashing menggunakan hashtable

Lihat kode berikut.

import java.util.*;

public class Hashing1 {
    public static void main(String args[]) {

        Hashtable hm = new Hashtable();

        hm.put(1, "App");
        hm.put(12, "Dividend");
        hm.put(15, "Best place to learn");
        hm.put(3, "Java");

        System.out.println(hm);
    }
} 

Lihat outputnya.

Hashing

Metode di atas yang digunakan adalah cara hashing yang disinkronkan.

Menerapkan hashing menggunakan hashmap

Lihat kode berikut.

import java.util.*;

public class Hashing2 {
    static void createHashMap(int arr[]) {
        HashMap hmap = new HashMap();
        for (int i = 0; i < arr.length; i++) {
            Integer c = hmap.get(arr[i]);
            if (hmap.get(arr[i]) == null) {
                hmap.put(arr[i], 1);
            } else {
                hmap.put(arr[i], ++c);
            }
        }
        System.out.println(hmap);
    }

    public static void main(String[] args) {
        int arr[] = { 11, 35, 6, 11, 4, 6, 12 };
        createHashMap(arr);
    }
} 

Lihat outputnya.

Implementing

Metode di atas yang digunakan adalah implementasi hashing yang tidak disinkronkan lebih cepat.

Di sini, kami telah membuat a hashmap diluar Himpunan dengan mengambil elemen sebagai kunci dan nilai sebagai frekuensi.

Menerapkan hashing menggunakan LinkedHashMap

Lihat program berikut.

import java.util.*;

public class BasicLinkedHashMap {
    public static void main(String a[]) {
        LinkedHashMap lhm = new LinkedHashMap();
        lhm.put("one", "AppDividend.Com");
        lhm.put("two", "https://appdividend.com/amp/category/java-tutorials/");
        System.out.println("Value for key 'one' is: " + lhm.get("one"));
        System.out.println("Size of the map: " + lhm.size());
        System.out.println("Is map empty? " + lhm.isEmpty());
        System.out.println("Contains key 'two'? " + lhm.containsKey("two"));
        System.out.println("delete element 'one': " + lhm.remove("one"));
        System.out.println(lhm);
    }
} 

Lihat outputnya.

Implementing

Metode di atas mirip dengan HashMap, tetapi satu -satunya keuntungan adalah menjaga urutan elemen.

Menerapkan hashing menggunakan concurrenthashmap

Lihat program berikut.

import java.util.concurrent.*;

public class ConcurrentHashMapDemo {
    public static void main(String[] args) {
        ConcurrentHashMap m = new ConcurrentHashMap();
        m.put(100, "C++");
        m.put(101, "Is");
        m.put(102, "Always");
        m.put(103, "Best");
        System.out.println("ConcurentHashMap: " + m);
        m.putIfAbsent(101, "C++");
        System.out.println("\nConcurentHashMap: " + m);
        m.remove(102, "Always");
        System.out.println("\nConcurentHashMap: " + m);
        m.replace(100, "C++", "Java");
        System.out.println("\nConcurentHashMap: " + m);
    }
} 

Lihat output berikut.

Implementing

Metode di atas mirip dengan hashtable. Perbedaannya adalah disinkronkan dan lebih cepat karena beberapa kunci digunakan.

Menerapkan hashing menggunakan hashset

Lihat program berikut.

import java.util.*;

public class Test {
    public static void main(String[] args) {
        HashSet h = new HashSet();
        h.add("India");
        h.add("Australia");
        h.add("South Africa");
        h.add("India");
        System.out.println(h);
        System.out.println("Does HashSet contains India or not:" + h.contains("India"));
        h.remove("Australia");
        System.out.println("List after removing Australia:" + h);
        System.out.println("Traversing the list:");
        Iterator i = h.iterator();
        while (i.hasNext())
            System.out.println(i.next());
    }
} 

Lihat outputnya.

Implementing

Metode di atas yang digunakan mirip dengan hashmap. Satu -satunya perbedaan adalah itu Hashset hanya mempertahankan kunci, bukan pasangan.

Menerapkan hashing menggunakan LinkedHashset

Lihat program berikut.

import java.util.LinkedHashSet;

public class Demo {
    public static void main(String[] args) {
        LinkedHashSet linkedset = new LinkedHashSet();

        linkedset.add("A");
        linkedset.add("B");
        linkedset.add("C");
        linkedset.add("D");

        // This will not add new element as A already exists
        linkedset.add("A");
        linkedset.add("E");

        System.out.println("Size of LinkedHashSet = " + linkedset.size());
        System.out.println("Original LinkedHashSet:" + linkedset);
        linkedset.remove("D");
        System.out.println("Trying to Remove Z which is not " + "present: " + linkedset.remove("Z"));
        System.out.println("Checking if A is present=" + linkedset.contains("A"));
        System.out.println("Updated LinkedHashSet: " + linkedset);
    }
} 

Lihat outputnya.

Implementing

Metode di atas mirip dengan LinkedHashMap. Perbedaannya adalah hanya mempertahankan kunci, bukan pasangan.

Itu untuk tutorial ini.

Posting yang disarankan

Java.lang.Boolean Class di Java

Antarmuka Deque di Java

Apa literal di java

Kelas Matematika Java

Kelas Kamus di Java

Artikel ini berasal dari website Winpoin, dan kemudian diterjemahkan ke bahasa indonesia, baca artikel asli disini

Leave a Reply

Your email address will not be published. Required fields are marked *