Quick actions

cmd+k|ctrl+k

Navigation

Languages

HashTables

Snippet info

Language

Dart

Visibility

public

Author

obihenry578

Created

2025-02-04T10:29:41.229988Z

Updated

2025-02-07T12:57:04.864634Z

class User{
    int age;
    String name;
    bool magic;
    Function scream;
    
    User(this.age, this.name, this.magic, this.scream);
    
    Map<String ,dynamic> toMap(){
        return {
           'age':age,
           'name': name,
           'magic':magic,
           'scream':scream
        };
    }
}


//Exercise

class HashTable {
  late List<dynamic> data;
  HashTable(size){
    this.data  = List.filled(size, null);
  }

  _hash(String key) {
    var hash = 0;
    for (var i =0; i < key.length; i++){
        hash = (hash + key.codeUnitAt(i) * i)  % this.data.length ;
    }
    return hash;
  }
  
  set(key, value){
     var address = _hash(key);
     if(this.data[address] == null) {
         // make data[address] to be an empty array 
         this.data[address] = [];
       
    }
     this.data[address].add([key, value]);
    //   print(data); 
    //   if(this.size >= this.size)
    //   this.size++;
  }
  
   get(key){
      var address = _hash(key);
      var currentBucket = this.data[address];
        print(currentBucket);
      if(currentBucket != null){
          for(var i = 0; i < currentBucket.length; i++){
              if(currentBucket[i][0] == key){
                     print(currentBucket[i][1]);
                  return currentBucket[i][1];
              }
          }
      }
      return currentBucket;
  }
  
  keys(){
      var keyArrays = [];
 
      for(var i = 0; i < this.data.length; i++){
        if(this.data[i] != null){
            print(this.data[i][0][0]);
            keyArrays.add(this.data[i][0][0]);
        }
               
      }
  }
  
  
}

void main() {
 
 Map<String, dynamic> users = {
     'age': 54,
     'name': 'Emma',
     'magic': true,
     'scream': (){
         print('aaaah ewoo!');
     },
 };
 
 



// User user = new User(54,'Emma', true, (){
//          print('aaaah ewoo!');
//      }, );
     
    //  Map<String, dynamic> users = user.toMap();
 
//  print(users['scream']());
//  users['spell'] = 'abra ka ta abara';
//  print(users['spell']);
 
//  const = new Map(); // stores keys and values 
//  const = new Set(); // stores only keys 
 
 
 //Exercise
HashTable myHashTable = new HashTable(50);
// do a set function that set grapes as the first index of the array 
myHashTable.set('grapes', 10000);
myHashTable.set('grapes', 1000);
// then do a get method to get the grapes 

myHashTable.set('apples', 9);
myHashTable.set('orenges', 93);
myHashTable.get('apples');
myHashTable.keys();
// myHashTable.get('apples');
 
//  print(myHashTable.data);
 
}
INFO