Learn Hash Tables in 13 minutes

Поділитися
Вставка
  • Опубліковано 19 жов 2021
  • Hash Table tutorial example explained
    #Hash #Table #Hashtable
    // Hashtable = A data structure that stores unique keys to values
    Each key/value pair is known as an Entry
    FAST insertion, look up, deletion of key/value pairs
    Not ideal for small data sets, great with large data sets
  • Наука та технологія

КОМЕНТАРІ • 166

  • @BroCodez
    @BroCodez  2 роки тому +122

    import java.util.*;
    public class Main{

    public static void main(String args[]) {
    // Hashtable = A data structure that stores unique keys to values ex.
    // Each key/value pair is known as an Entry
    // FAST insertion, look up, deletion of key/value pairs
    // Not ideal for small data sets, great with large data sets

    // hashing = Takes a key and computes an integer (formula will vary based on key & data type)
    // In a Hashtable, we use the hash % capacity to calculate an index number

    // key.hashCode() % capacity = index

    // bucket = an indexed storage location for one or more Entries
    // can store multiple Entries in case of a collision (linked similarly a LinkedList)

    // collision = hash function generates the same index for more than one key
    // less collisions = more efficiency

    // Runtime complexity: Best Case O(1)
    // Worst Case O(n)
    Hashtable table = new Hashtable(10);

    table.put(100, "Spongebob");
    table.put(123, "Patrick");
    table.put(321, "Sandy");
    table.put(555, "Squidward");
    table.put(777, "Gary");

    for(Integer key : table.keySet()) {
    System.out.println(key.hashCode() % 10 + "\t" + key + "\t" + table.get(key));
    }
    }
    }

    • @ihateorangecat
      @ihateorangecat 2 роки тому

      more python tutorials please bro🙏

    • @ashutoshsoni9723
      @ashutoshsoni9723 2 роки тому

      Bro can you please make a video on Library Management System in JAVA. It's my request please!

    • @masternobody1896
      @masternobody1896 2 роки тому

      nice

    • @joyceasante8292
      @joyceasante8292 Рік тому

      import java.util.*;
      public class Main
      {
      public static void main(String[] args) {
      Hashtabletable = new Hashtable(10);
      table.put(254,"Irene");
      table.put(802,"Derrek");
      table.put(671,"Alonso");
      table.put(545,"Veronica");
      //System.out.println(table.get(545));
      //table.remove(671);
      for(Integer key : table.keySet()){
      //System.out.println(key + "\t" + table.get(key));
      System.out.println(key.hashCode() % 10 + "\t" + key + "\t" + table.get(key));
      }
      }
      }
      _____________________________________________
      import java.util.*;
      public class Main
      {
      public static void main(String[] args) {
      Hashtabletable = new Hashtable(10);
      table.put("254","Irene");
      table.put("802","Derrek");
      table.put("671","Alonso");
      table.put("545","Veronica");

      //table.remove(671);
      for(String key : table.keySet()){
      //System.out.println(key.hashCode() + "\t" + key + "\t" + table.get(key));
      //System.out.println(key.hashCode() % 10 + "\t" + key + "\t" + table.get(key));
      //System.out.println(key.hashCode() % 11 + "\t" + key + "\t" + table.get(key));
      System.out.println(key.hashCode() % 21 + "\t" + key + "\t" + table.get(key));
      }
      }
      }

    • @pavanimaddala8060
      @pavanimaddala8060 Рік тому

      Can you explain how to create hash table in mysql

  • @Aussiesnrg
    @Aussiesnrg 4 місяці тому +30

    Was a programmer on a statewide court system back in the late 80's that needed a surname search to return a full page of results in less than a second. We used hashing tables and progressive searches to keep the speed amazingly fast. I think we had it down to about 0.2 of a second.
    They are fantastic with really large collections of data that needs searching.

  • @marius.y6360
    @marius.y6360 2 роки тому +106

    Hey Bro, I just wanna thank you for teaching me all this stuff. 7 months ago I was almost nowhere not even knowing how to write a main method in Java but now I'm programming my own graphics library. You're truly a legend😎

    • @blu5175
      @blu5175 2 роки тому

      whats a graphic library im new sorry

    • @intifadayuri
      @intifadayuri Рік тому +5

      @@blu5175 libraries in java are a series of already build methods that you can use. For example, whenever you want to write something in the java console you need to import the java.util.Scanner library.
      My guess is that this guy is talking about a library to build a 3d engine with java

    • @blu5175
      @blu5175 Рік тому +6

      @@intifadayuri Yea I learnt this by now it's been 11 months! Haha but still thank you very much?

    • @AMZ_official
      @AMZ_official 9 місяців тому

      @@blu5175 It's been 11 months again! did you complete it? What else have you achieved in your career? Asking for just motivation

    • @RonnieBanerjee007
      @RonnieBanerjee007 2 місяці тому +1

      ​@@intifadayuri well, you tried to help, that's what counts ❤

  • @dmitriivlasov3728
    @dmitriivlasov3728 2 роки тому +29

    Bro, We just started going through Hash Tables in our CompSci class and now you release a video. Thank you!

  • @WorkSmarter__
    @WorkSmarter__ 2 роки тому +16

    Level of teaching of Bro is just on another level👍

  • @clashclans9783
    @clashclans9783 6 місяців тому +2

    that actually makes so much sense!! was looking at the profssors notes and watching his lectures and not understanding it one single bit!!!! long live the BRO!!!!

  • @crossfadez5521
    @crossfadez5521 Рік тому +5

    This was a very insightful video, thanks a lot. Although I really wished you also went over how to treat a bucket as a linked list and iterate through it to find the key you're looking for.

  • @thomashansknecht1898
    @thomashansknecht1898 Рік тому +6

    I am surprised my computer science curriculum barely even mentioned hash tables. They have been such a game changer to me at work as a software engineer. Way faster and easier than using an array and nested loops.

    • @randomrun1
      @randomrun1 7 місяців тому

      That's interesting, I'm about to start my BSCS and I'm pregaming with the popular Java MOOC. It has an explanation of how to use hash tables in the 8th week and how to make them from scratch in the 12th week. Glad I got the info there if it's not going to be in my curriculum.

  • @dbvs007
    @dbvs007 2 роки тому +2

    Thank you, I have been having questions on HashTable and wanted to understand hashCode, excellent explanation, keep doing more videos.

  • @PratikThisSide
    @PratikThisSide 2 роки тому +3

    Simply, subtly & nearly explained Bro Sir 👌🏼
    #KeelItUp ✌🏼 #LoveFromINDIA🇮🇳

  • @VERY_TALL_MAN
    @VERY_TALL_MAN 2 роки тому +64

    Wow, this is a really good introduction to hash tables!

    • @BroCodez
      @BroCodez  2 роки тому +14

      thanks Grayson!

    • @deepakr1945
      @deepakr1945 Рік тому +1

      @@BroCodez it bad

    • @elielvieira3041
      @elielvieira3041 Рік тому +5

      @@deepakr1945 nah

    • @windigo77
      @windigo77 7 місяців тому

      It's too bad it violates the ADA with its use of camelCase for method names, and is therefore an illegal language to use in the workplace

  • @confused6526
    @confused6526 4 місяці тому

    Oh My Goodness... The best video on HashMap data structure. You're the man! 👍

  • @gerxisander5294
    @gerxisander5294 2 роки тому

    very nice tutorial. BIG LIKE

  • @mjjrr1331
    @mjjrr1331 Місяць тому +2

    Simple and understandable. Thank you so much for this tutorial!

  • @alexh3143
    @alexh3143 5 днів тому

    the only video I found that has explained hash tables clearly

  • @stephanieezat-panah7750
    @stephanieezat-panah7750 2 роки тому +1

    As always, an excellent presentation. thank you

  • @ruleoflawedutainment
    @ruleoflawedutainment 2 роки тому +2

    I studied this last term but didn't understand what I do now. Thank you.

  • @oogshow2809
    @oogshow2809 2 роки тому +1

    It’s beautiful lecture I like this hash , I’m always favourite your lecture bro due to your best explanation , keep going bro

  • @nischalofchrist
    @nischalofchrist Рік тому

    Bro, you Rock. Best and simple explanation of Hash tables. Thanks

  • @randomrun1
    @randomrun1 7 місяців тому

    This is a great video, thank you. It's much clearer than my course material.

  • @patriciale6647
    @patriciale6647 2 місяці тому

    I didn't pay attention during lecture and I have a quiz tomorrow, so this is a lifesaver!

  • @hazmi96
    @hazmi96 2 роки тому +4

    Thanks! love your videos!

  • @abdalwahedhajomar3898
    @abdalwahedhajomar3898 Рік тому +2

    This video is amazingly helpful

  • @lucacodastefano2409
    @lucacodastefano2409 2 роки тому

    Very nice lesson, like every other!

  • @aryankumar313
    @aryankumar313 10 місяців тому

    Brooo!!!!....you just explain so good!....got it just by watching it once!

  • @KiranNaragam
    @KiranNaragam 4 дні тому

    GOAT Video of HashTable

  • @daviduntalan
    @daviduntalan Рік тому

    thank you for this tutorial, now i can finally understand the HashTable.

  • @robdimmitt3204
    @robdimmitt3204 Рік тому +1

    Unbelievably good video

  • @mistersir3185
    @mistersir3185 Рік тому +1

    good surface level info

  • @ethio15code
    @ethio15code 4 місяці тому

    Nice explanation 👍

  • @umut_satir
    @umut_satir Місяць тому

    i didn't understand the other videos but you clearly explained how it works, thanks for the content

  • @tavwalt1973
    @tavwalt1973 Рік тому

    Wow thank you so much, this was super clear!!!!

  • @gamermachine4048
    @gamermachine4048 2 роки тому

    Nice, can you make a video on suppliers and consumers next?

  • @Mohamed-uf5jh
    @Mohamed-uf5jh Рік тому

    Good explanation . Liked it a lot !

  • @kosolomon123
    @kosolomon123 2 роки тому

    good quality content!

  • @xxmsdxx
    @xxmsdxx 2 роки тому

    Keep going ❤

  • @ldpenrose
    @ldpenrose 2 роки тому

    The BRO is BACK!

  • @recipeFor
    @recipeFor Рік тому

    Thanks a lot for providing a valuable video.

  • @hwstar9416
    @hwstar9416 8 місяців тому +3

    Things to note:
    If you have collisions the best course of action is to change your hash function. In your example, a good hash function would be taking the ascii code of the rightmost number and subtracting 48, that way you'd have 0 collisions and don't need to do % anymore.
    Another thing, if your table size is a power of 2 you don't have to do % anymore, you can instead do bitwise and with table size.

    • @mikoalt
      @mikoalt 7 місяців тому

      Can you explain the bitwise with table size if the power is 2?

    • @ThomasEdits
      @ThomasEdits 7 місяців тому

      I just found out about hashtables so I would appreciate some input:
      If you are using a hashtable for storing dynamic data, how would you know what hash function always guarantees no collisions?

    • @hwstar9416
      @hwstar9416 6 місяців тому +1

      @@ThomasEdits your data is never truly random. You can always make your hash function avoid collisions (not always completely) by analyzing your data and coming up with a good hash

  • @collectick
    @collectick 7 днів тому

    Better explanation than my computer science teacher, and my native language isn't event english! :)

  • @joseoterol
    @joseoterol 11 місяців тому

    I love that man. Thanks mate

  • @skillraiderv5289
    @skillraiderv5289 2 роки тому +1

    Thanks for this videos Bro!

  • @TheFlexath
    @TheFlexath 4 місяці тому

    thank you sir , best explanation.

  • @zeeg1529
    @zeeg1529 3 місяці тому

    top quality content. great job, Bro!

  • @coder4937
    @coder4937 2 роки тому

    Good work👍👍👍👍

  • @joeyfarrell4399
    @joeyfarrell4399 3 місяці тому

    I love this channel so, so much

  • @mohitjain957
    @mohitjain957 2 роки тому

    bro you are insane
    Thanks sir
    I really appreciate

  • @flammabletfm3405
    @flammabletfm3405 2 роки тому

    Wow! Nice.

  • @victors8718
    @victors8718 5 місяців тому

    Bro is an absolute legend

  • @P0K0
    @P0K0 Рік тому

    The best video I've seen today ❤

  • @katendetimothy6542
    @katendetimothy6542 2 роки тому

    Bro thx for the free videos. How can I apply this topic in real life maybe in GUI?

  • @danielhowe3393
    @danielhowe3393 2 роки тому

    Could you go over the A star algorithm next pls

  • @ChristianRodriguez-tm3jg
    @ChristianRodriguez-tm3jg Рік тому

    thanks bro... greetings from Ecuador

  • @user-ss2rt9xk4g
    @user-ss2rt9xk4g 7 місяців тому

    Well done, TY!

  • @hermansiisengbae
    @hermansiisengbae 2 роки тому

    Wow 👍👍

  • @facuz4170
    @facuz4170 Рік тому

    Nice video!

  • @mugosimon717
    @mugosimon717 9 місяців тому

    you are the best

  • @justinbanza4079
    @justinbanza4079 2 роки тому

    Thank you for this video

  • @emiralpkilic5669
    @emiralpkilic5669 8 місяців тому

    Eyyo Brooooo you are a legend!!!

  • @stillpickinganame5350
    @stillpickinganame5350 5 днів тому

    Very good, thank you!

  • @nageshmh
    @nageshmh 25 днів тому

    Awesome

  • @DINESH-ji7tm
    @DINESH-ji7tm 2 роки тому

    Sir , please provide use app development course , It's a very helpful .

  • @jordimorenosanchez584
    @jordimorenosanchez584 10 місяців тому

    I thought I understood what a hash table was till I saw this video 🙏

  • @SlashKilll
    @SlashKilll Рік тому

    THANK YOU YOU SAVED ME

  • @getyournekoshere9824
    @getyournekoshere9824 Рік тому

    nice vid man thanks

  • @rmsoft
    @rmsoft 4 місяці тому

    Really good, no babbling, just information.

  • @Code_JAVA268
    @Code_JAVA268 2 місяці тому

    tooo cool man

  • @StephanHaloftis
    @StephanHaloftis Рік тому +2

    Is it possible to design the table to have a dynamic capacity that can be adjusted if there are collisions?

    • @kylebelle246
      @kylebelle246 Місяць тому

      i could see this taking more work and end up being slower than just appending to the linked list, since you the existing element now also need to be moved since their table index may no longer be the same give the remainder will likely be different. i would say just make sure the hashtable is sized appropriately and at that point you've done the best you could

  • @alanfrost2973
    @alanfrost2973 2 роки тому

    Another day Thank you so much if you ever have membership for no reason ill try to join to money you deserve it

  • @ruthvikas
    @ruthvikas 2 роки тому

    @Bro code, it would be great if you teach android development with kotlin also...

  • @owlexb1124
    @owlexb1124 2 роки тому

    Thank you!

  • @adheesh2secondsago630
    @adheesh2secondsago630 2 роки тому

    Nice👍

  • @heavenlypenguin6613
    @heavenlypenguin6613 Рік тому

    Thank you Bro!

  • @akmalbukhariev7932
    @akmalbukhariev7932 3 місяці тому

    Thank you so much sir.

  • @issac17
    @issac17 2 роки тому +1

    Thanks man I really appreciate ❤️

    • @BroCodez
      @BroCodez  2 роки тому +1

      anytime! Thanks for commenting

    • @issac17
      @issac17 2 роки тому

      Your videos are really helpful...you deserved it❤️

  • @ukaszkiepas57
    @ukaszkiepas57 4 місяці тому

    thank you bro. Student from Poland :>

  • @alimasterchess778
    @alimasterchess778 2 роки тому

    Bro can you please do assembler tutorial videos?

  • @KaptainLuis
    @KaptainLuis 3 дні тому

    thank you soooo much!!!

  • @margretmauno1285
    @margretmauno1285 3 місяці тому

    I love youuu🥺🥺
    Respectfully BUT sincerely
    Many thanks!

  • @punzalanchristine2442
    @punzalanchristine2442 5 місяців тому

    what do you call when u give that type of solution in collision, is it open hashing or not?

  • @acatisfinetoo3018
    @acatisfinetoo3018 6 місяців тому

    Hash table is my favoriate data structure😉

  • @visitor404
    @visitor404 Рік тому

    Bro 🤜🤛

  • @hypnos9336
    @hypnos9336 2 місяці тому

    helpful, thank you

  • @patahgaming
    @patahgaming 7 місяців тому

    I learn how to use hash table without tutorial now :)

  • @gksw_g1437
    @gksw_g1437 2 роки тому +1

    thanks!

  • @Piseth_01
    @Piseth_01 2 роки тому +1

    In cars stuff we have Chrisfix in computer stuff we have my bro right here.

  • @victorrezende6002
    @victorrezende6002 8 місяців тому

    Nice class

  • @joseluizdurigon8893
    @joseluizdurigon8893 Рік тому +1

    Ok, but the bucket we're talking about is a memory address? I mean, if we have a collision, we must create a linked list. Fine with that I get it, but that linked list will be stored in the same memory address? I don't think I'm rationalizing right. The linked list will be stored like a vector and the data that has a collision will have a pointer to that new node right? I'm sorry if I sound a little bit confusing but that's what I've figured out

    • @kylebelle246
      @kylebelle246 Місяць тому

      What if it was always a linked list? even if there are no collisions and the linked list only contains one node. I think that'd make more sense

  • @hyvaahyvaa9578
    @hyvaahyvaa9578 Рік тому

    hi is it possible to implement the hash table using an array?

  • @firepower01
    @firepower01 Рік тому

    Thanks Bro

  • @trevorphilipsindustries1046

    I'm wondering if these hashcodes been written incorrectly here 3:49
    Because the hashcode of String "100" would be 47155, not 48625.
    and here is why:
    Initialize hash to 0: hash = 0.
    Multiply hash by 31 and add the numeric value of the first character '1': hash = (0 * 31) + 49 = 49.
    Multiply hash by 31 and add the numeric value of the second character '0': hash = (49 * 31) + 48 = 1517.
    Multiply hash by 31 and add the numeric value of the third character '0': hash = (1517 * 31) + 48 = 47155.
    so, am I right, these numbers in the example's hashcode are just random numbers and have nothing to do with the righ hashcodes?

  • @khushalsinghsaini805
    @khushalsinghsaini805 Рік тому

    how we can deal with HashTable of Classes? Like in place of int and string key it is some sort of class. Like Hashtable;

  • @HarryInShape
    @HarryInShape Місяць тому

    I love you Bro

  • @alpeshamriwala1740
    @alpeshamriwala1740 2 роки тому +2

    Thanks bro 😭

  • @Heyleang
    @Heyleang 11 днів тому

    Thank man

  • @ztipster
    @ztipster 2 місяці тому

    Does google uses hash tables to display instant results ?

  • @xinfangmin3665
    @xinfangmin3665 2 роки тому +1

    Never be so early!

  • @MrLoser-ks2xn
    @MrLoser-ks2xn Рік тому

    Thanks!

  • @thedojoclub
    @thedojoclub Рік тому

    thank god for Bro!

  • @elias6406
    @elias6406 Рік тому

    What’s the difference between hashtable and hashmaps?