HashTables

Run Settings
LanguageDart
Language Version
Run Command
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); }
Editor Settings
Theme
Key bindings
Full width
Lines