Bài 294: Hashtable trong java

Ngày đăng: 1/7/2023 9:19:51 AM

Những điểm quan trọng về lớp Hashtable trong java là:

  • Hashtable là một mảng của list. Mỗi list được biết đến như một xô chứa các phần tử. Ví trí của một xô được xác định bằng việc gọi phương thức hashcode(). Hashtable cũng lưu trữ dữ liệu dưới dạng cặp key và value.
  • Nó chứa các key duy nhất.
  • Nó KHÔNG thể có bất kỳ key hoặc giá trị nào là null.
  • Nó được đồng bộ.

Sự khác nhau giữa HashMap và Hashtable

Đây cũng là một câu hỏi phỏng vấn được hỏi với tần suất cao. Xem chi tiết tại đây sự khác nhau giữa HashMap và Hashtable.


Hierarchy của lớp Hashtable

Hashtable trong java


Khai báo của lớp Hashtable

Dưới đây là khai báo của lớp java.util.Hashtable trong java

1      

2

public class Hashtable<K,V> extends Dictionary<K,V>

    implements Map<K,V>, Cloneable, java.io.Serializable {

Trong đó:

  • K: đây là kiểu key để lưu trữ.
  • V: đây là kiểu giá trị được ánh xạ.

Ví dụ về Hashtable trong java

Ví dụ 1: Sử dụng phương thức remove().

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42     

43

package vn.viettuts.collection;

 

import java.util.Hashtable;

import java.util.Set;

 

public class HashTableExample1 {

    /**

     * main

     *

     * @author viettuts.vn

     * @param args

     */

    public static void main(String args[]) {

        // init hashtable

        Hashtable<Integer, String> hashtable = new Hashtable<Integer, String>();

        // add elements to hashtable

        hashtable.put(3, "C++");

        hashtable.put(1, "Java");

        hashtable.put(2, "PHP");

        hashtable.put(4, "Python");

        // show hashtable

        show(hashtable);

        // remove element

        hashtable.remove(2);

        // show hashtable after remove

        System.out.println("After remove:");

        // show hashtable

        show(hashtable);

 

    }

 

    /**

     * show HashMap

     *

     * @param viettuts.vn

     */

    public static void show(Hashtable<Integer, String> hashtable) {

        Set<Integer> keySet = hashtable.keySet();

        for (Integer key : keySet) {

            System.out.println(key + " " + hashtable.get(key));

        }

    }

}

Kết quả:

 4 Python
 3 C++
 2 PHP
 1 Java
 After remove:
 4 Python
 3 C++
 1 Java
 

Ví dụ 2: Hashtable với key có kiểu String, value có kiểu Student.

Lớp Student.java

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49     

/**

 * Student class

 *

 * @author viettuts.vn

 */

public class Student{

    private String name;

    private int age;

    private String address;

 

    public Student() {

    }

 

    public Student(String name, int age, String address) {

        super();

        this.name = name;

        this.age = age;

        this.address = address;

    }

 

    public String getName() {

        return name;

    }

 

    public void setName(String name) {

        this.name = name;

    }

 

    public int getAge() {

        return age;

    }

 

    public void setAge(int age) {

        this.age = age;

    }

 

    public String getAddress() {

        return address;

    }

 

    public void setAddress(String address) {

        this.address = address;

    }

 

    @Override

    public String toString() {

        return "Student@name=" + name + ",age=" + age + ",address=" + address;

    }

}

File:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36    

package vn.viettuts.collection;

 

import java.util.Hashtable;

import java.util.Set;

 

public class HashTableExample2 {

    /**

     * main

     *

     * @author viettuts.vn

     * @param args

     */

    public static void main(String args[]) {

        // init hashMap

        Hashtable<String, Student> hashMap = new Hashtable<String, Student>();

        // add elements to hashMap

        hashMap.put("1", new Student("A", 12, "Hanoi"));

        hashMap.put("3", new Student("C", 13, "Hanoi"));

        hashMap.put("2", new Student("E", 15, "Hanoi"));

        hashMap.put("4", new Student("D", 14, "Hanoi"));

        // show hashMap

        show(hashMap);

    }

 

    /**

     * show HashMap

     *

     * @param viettuts.vn

     */

    public static void show(Hashtable<String, Student> hashtable) {

        Set<String> keySet = hashtable.keySet();

        for (String key : keySet) {

            System.out.println(key + " " + hashtable.get(key));

        }

    }

}

Kết quả:

 4 Student@name=D,age=14,address=Hanoi
 3 Student@name=C,age=13,address=Hanoi
 2 Student@name=E,age=15,address=Hanoi
 1 Student@name=A,age=12,address=Hanoi

Nguồn tin: viettuts.vn