Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Thêm phần tử vào Hash Table bằng JavaScript


Khi thêm phần tử vào Hash Table, phần quan trọng nhất là giải quyết va chạm. Chúng ta sẽ dùng phương pháp chaining (xâu chuỗi). Có các thuật toán khác bạn có thể tham khảo tại: https://en.wikipedia.org/wiki/Hash_table#Collision_resolution

Hãy xem triển khai cụ thể. Chúng ta sẽ tạo một hàm hash chỉ hoạt động trên số nguyên để đơn giản. Nhưng thuật toán phức tạp hơn có thể dùng để hash mọi đối tượng:

Ví dụ

put(key, value) {
  let hashCode = hash(key);
  for(let i = 0; i < this.container[hashCode].length; i++) {
    // Thay thế giá trị hiện tại bằng khóa cho trước
    // nếu nó đã tồn tại
    if(this.container[hashCode][i].key === key) {
      this.container[hashCode][i].value = value;
      return;
    }
  }
  // Thêm cặp vào cuối mảng
  this.container[hashCode].push(new this.KVPair(key, value));
}

Bạn có thể kiểm tra bằng cách sau:

Ví dụ

let ht = new HashTable();
ht.put(10, 94);
ht.put(20, 72);
ht.put(30, 1);
ht.put(21, 6);
ht.put(15, 21);
ht.put(32, 34);
ht.display();

Kết quả

Điều này sẽ cho ra kết quả:

0: 1: 2: 3: 4: { 15: 21 } 5: 6: 7: 8: { 30: 1 } 9: { 20: 72 } 10: { 10: 94 } -->{ 21: 6 } -->{ 32: 34 }