 Now, since we've removed the idea of everything being a traditional array, remember if we looked at an array, actually I'm going to kind of use some different words here. Let's say I'm using dog, cat, and monkey. Inside of a traditional array, each one of these are being stored by some, not three, some of what we would classify as an index. So one of the things that we can introduce is a new data type, known as a dictionary. You might also hear this get referred to as a map depending on implementation. Java, for example, calls them a map, Python would call them a dictionary. The real important thing is we would actually sort of classify it as an associative array. The reason why is if we sort of look up here, this is what we would actually consider a numeric array. Now that kind of word there, that's the big change between the two of these. The entire idea is if we remember how we initially learned what an array was, right, there was some element, in this case a dog, a cat, and a monkey, and then we came in and we said that we had some index. Now inside of a traditional numeric array, that index would just be starting from 0, 0, 1, 2, because they're stored in memory in some way. Our problem is, well, you know, maybe that's a little, I wouldn't call it counterintuitive, but I don't want to use that. Maybe I want to create instead of, actually I'll keep that. What if instead I got rid of that term and I called it something like a key? We can get rid of the entire index going on here and now we can use any type of data type to represent a link to our element of dog, cat, monkey. In our case, since we're using numbers here, I don't have to use numbers. Maybe instead I just use a letter. I just use a letter. I just use a letter. For our sake, I could come in and do this same approach. Let's say I created our map, just because we are in Java, so map M equals new map. Now, the map class in Java is abstract, so you can't just magically do this. We'll talk about that a little later. But I come in, boom, all right. I make my M and I'm going to do my first insert. Well, let's go ahead and just put that D in there, D for dog. In the same approach that we've done before, we could actually do this inside of a linked list version or an array version. With an array, we would need two separate arrays, sort of mapping D to dog and sharing some kind of shared index. That's kind of confusing, can be in some regards. We could also do it inside the linked list approach. The entire important thing is, though, that I have this D. This is now my lookup. Same kind of concept can come into play when I did my insert for cat. I don't know why I put a dog again, cat, and once again for insert monkey. The important thing about this map idea, let's say for example I've made it, so I'll put it right about here. The important concept going on here is not only do I have sort of an insert, but I could also have something like a lookup. Now if I do my lookup, I don't have to, just like I would do in a traditional array, I'd come in and use square brackets, boom, haha. What is that? That is technically a lookup, and this, instead of it being an index, is some, that's a fancy key, k for key. So in our case, if I did a lookup on M, what would we get back? Since M is the key for monkey, I would spit out monkey.