Uitsluitend tonen
0:03
S… Speaker 2 (5- The Iterator Interface)
In this video,
0:04
S… Speaker 1 (5- The Iterator Interface)
we're going to complete our implementation of the iterator method.
0:07
S… Speaker 2 (5- The Iterator Interface)
So as you can see,
0:08
S… Speaker 1 (5- The Iterator Interface)
this method returns an iterator object.
0:11
S… Speaker 1 (5- The Iterator Interface)
This iterator is actually an interface declared in the java
0:15
S… Speaker 2 (5- The Iterator Interface)
.util package.
0:16
S… Speaker 1 (5- The Iterator Interface)
So here on the documentation,
0:18
S… Speaker 1 (5- The Iterator Interface)
you can see the four methods declared in this interface.
0:21
S… Speaker 1 (5- The Iterator Interface)
These two methods over here have a default implementation.
0:24
S… Speaker 1 (5- The Iterator Interface)
So we don't have to worry about them.
0:26
S… Speaker 1 (5- The Iterator Interface)
The only two methods that we have to implement are has next and
0:30
S… Speaker 1 (5- The Iterator Interface)
next, which you saw in the last video.
0:31
S… Speaker 1 (5- The Iterator Interface)
So now we should declare a new class that implements the
0:35
S… Speaker 1 (5- The Iterator Interface)
iterator interface.
0:37
S… Speaker 1 (5- The Iterator Interface)
So back to our generic list,
0:39
S… Speaker 1 (5- The Iterator Interface)
we're going to implement this iterator as a private nested class inside
0:43
S… Speaker 1 (5- The Iterator Interface)
this generator list class.
0:45
S… Speaker 1 (5- The Iterator Interface)
You will see why in a second.
0:46
S… Speaker 1 (5- The Iterator Interface)
So after the iterator method we declare a private
0:50
S… Speaker 1 (5- The Iterator Interface)
class called list iterator,
0:53
S… Speaker 1 (5- The Iterator Interface)
this class should implement the iterator interface which is
0:57
S… Speaker 1 (5- The Iterator Interface)
generic,
0:58
S… Speaker 1 (5- The Iterator Interface)
so iterator of t.
1:00
S… Speaker 1 (5- The Iterator Interface)
Now this t that we have here is the same t that we used
1:05
S… Speaker 1 (5- The Iterator Interface)
when declaring our generic list.
1:07
S… Speaker 1 (5- The Iterator Interface)
So if the client of this class,
1:09
S… Speaker 1 (5- The Iterator Interface)
let's say in our main method,
1:10
S… Speaker 1 (5- The Iterator Interface)
we create a new generic list of string,
1:13
S… Speaker 1 (5- The Iterator Interface)
this type parameter is going to be a string,
1:15
S… Speaker 1 (5- The Iterator Interface)
and we're going to use the same type parameter over here
1:19
S… Speaker 1 (5- The Iterator Interface)
because we're going to iterate over a list of strings.
1:21
S… Speaker 1 (5- The Iterator Interface)
So that is why I don't want to hard code a type over here
1:25
S… Speaker 1 (5- The Iterator Interface)
like string or integer.
1:27
S… Speaker 1 (5- The Iterator Interface)
I want to use the same type parameter that we have on the top.
1:30
S… Speaker 1 (5- The Iterator Interface)
Okay, so here's our private class.
1:34
S… Speaker 1 (5- The Iterator Interface)
Now let's implement the iterator interface.
1:36
S… Speaker 1 (5- The Iterator Interface)
So we press alt and enter and select implement methods.
1:40
S… Speaker 1 (5- The Iterator Interface)
So the two required methods are highlighted.
1:44
S… Speaker 1 (5- The Iterator Interface)
Let's click OK.
1:46
S… Speaker 1 (5- The Iterator Interface)
Now in this class,
1:47
S… Speaker 1 (5- The Iterator Interface)
we want to iterate over a generic list.
1:49
S… Speaker 1 (5- The Iterator Interface)
So we should pass that generic list over here via a constructor.
1:53
S… Speaker 1 (5- The Iterator Interface)
So let's add a constructor public list iterator.
1:58
S… Speaker 1 (5- The Iterator Interface)
Here we need a parameter of type generic list of t,
2:02
S… Speaker 1 (5- The Iterator Interface)
the same type parameter,
2:04
S… Speaker 1 (5- The Iterator Interface)
we call it list.
2:06
S… Speaker 1 (5- The Iterator Interface)
Now we should store this in a private field in this class.
2:09
S… Speaker 1 (5- The Iterator Interface)
So private generic list of t,
2:13
S… Speaker 1 (5- The Iterator Interface)
we call it list.
2:15
S… Speaker 1 (5- The Iterator Interface)
And here we set this .list to list.
2:19
S… Speaker 2 (5- The Iterator Interface)
Now,
2:20
S… Speaker 1 (5- The Iterator Interface)
because we have declared this list iterator inside our
2:24
S… Speaker 1 (5- The Iterator Interface)
generic list,
2:25
S… Speaker 1 (5- The Iterator Interface)
here we have access
2:27
S… Speaker 1 (5- The Iterator Interface)
to list .items.
2:29
S… Speaker 1 (5- The Iterator Interface)
So we can see the items array.
2:31
S… Speaker 1 (5- The Iterator Interface)
And this is perfectly fine because this class is part of the implementation
2:35
S… Speaker 1 (5- The Iterator Interface)
of our generic list.
2:36
S… Speaker 1 (5- The Iterator Interface)
So if tomorrow we decide to replace this array with,
2:39
S… Speaker 1 (5- The Iterator Interface)
let's say an array list,
2:41
S… Speaker 1 (5- The Iterator Interface)
this class is the only place where we have to make changes.
2:44
S… Speaker 1 (5- The Iterator Interface)
Because this class knows how to iterate over a generic list.
2:48
S… Speaker 1 (5- The Iterator Interface)
So if we replace the items array with an array list,
2:51
S… Speaker 1 (5- The Iterator Interface)
nowhere else in the code,
2:52
S… Speaker 1 (5- The Iterator Interface)
nowhere inside the main method or anywhere else where we have used a generic list,
2:57
S… Speaker 1 (5- The Iterator Interface)
we have to make changes,
2:58
S… Speaker 1 (5- The Iterator Interface)
okay?
2:58
S… Speaker 1 (5- The Iterator Interface)
Now here's a question,
3:00
S… Speaker 1 (5- The Iterator Interface)
how can we iterate over an array?
3:02
S… Speaker 2 (5- The Iterator Interface)
Well,
3:03
S… Speaker 1 (5- The Iterator Interface)
we need an index variable,
3:04
S… Speaker 1 (5- The Iterator Interface)
initially we set it to 0,
3:06
S… Speaker 1 (5- The Iterator Interface)
as long as the index is less than the number of items in the array,
3:09
S… Speaker 1 (5- The Iterator Interface)
we increment it,
3:10
S… Speaker 1 (5- The Iterator Interface)
right?
3:10
S… Speaker 2 (5- The Iterator Interface)
So,
3:11
S… Speaker 1 (5- The Iterator Interface)
let's declare a private field of type integer
3:15
S… Speaker 1 (5- The Iterator Interface)
called index
3:17
S… Speaker 1 (5- The Iterator Interface)
Now in our hasNext method,
3:19
S… Speaker 1 (5- The Iterator Interface)
instead of returning false,
3:20
S… Speaker 1 (5- The Iterator Interface)
we're going to return a boolean expression like this.
3:23
S… Speaker 1 (5- The Iterator Interface)
If index is less than,
3:25
S… Speaker 1 (5- The Iterator Interface)
list .count.
3:27
S… Speaker 2 (5- The Iterator Interface)
Then,
3:29
S… Speaker 1 (5- The Iterator Interface)
in our next method,
3:31
S… Speaker 1 (5- The Iterator Interface)
instead of returning null,
3:32
S… Speaker 1 (5- The Iterator Interface)
we're going to return list .items of
3:36
S… Speaker 1 (5- The Iterator Interface)
index,
3:37
S… Speaker 1 (5- The Iterator Interface)
and then we'll increment the index.
3:40
S… Speaker 1 (5- The Iterator Interface)
So initially index is 0,
3:42
S… Speaker 1 (5- The Iterator Interface)
let me call the next method,
3:43
S… Speaker 1 (5- The Iterator Interface)
this will return list .items of 0.
3:47
S… Speaker 1 (5- The Iterator Interface)
Now next time we call this method index is going to be one so we'll return the
3:51
S… Speaker 1 (5- The Iterator Interface)
second item in this array and we're going to do this as long as index is less
3:55
S… Speaker 1 (5- The Iterator Interface)
than the number of items in our list.
3:57
S… Speaker 2 (5- The Iterator Interface)
Okay,
3:57
S… Speaker 1 (5- The Iterator Interface)
so pretty simple we're done implementing our list
4:02
S… Speaker 1 (5- The Iterator Interface)
iterator now back to our iterator method instead
4:06
S… Speaker 1 (5- The Iterator Interface)
of returning null we're going to return a new list iterator
4:11
S… Speaker 1 (5- The Iterator Interface)
Now note that here we have another list iterator which is
4:15
S… Speaker 1 (5- The Iterator Interface)
an interface declared in the java .util package.
4:18
S… Speaker 1 (5- The Iterator Interface)
We don't want this one,
4:19
S… Speaker 1 (5- The Iterator Interface)
we want the list iterator that we declared here.
4:21
S… Speaker 2 (5- The Iterator Interface)
So,
4:22
S… Speaker 1 (5- The Iterator Interface)
let's create a new object,
4:25
S… Speaker 1 (5- The Iterator Interface)
and here we should pass our generic list to the constructor of this class.
4:29
S… Speaker 1 (5- The Iterator Interface)
What is that?
4:30
S… Speaker 1 (5- The Iterator Interface)
That is the current object,
4:32
S… Speaker 2 (5- The Iterator Interface)
this.
4:33
S… Speaker 1 (5- The Iterator Interface)
So let's quickly recap.
4:35
S… Speaker 1 (5- The Iterator Interface)
We made our generic list iterable
4:39
S… Speaker 1 (5- The Iterator Interface)
by implementing the iterable interface.
4:42
S… Speaker 1 (5- The Iterator Interface)
and here we return a list iterator.
4:45
S… Speaker 1 (5- The Iterator Interface)
This is an object that knows how to iterate over a generic list.
4:49
S… Speaker 1 (5- The Iterator Interface)
So it has intimate knowledge of the implementation detail of
4:53
S… Speaker 1 (5- The Iterator Interface)
our generic list.
4:54
S… Speaker 1 (5- The Iterator Interface)
If tomorrow we decide to replace this array with an array
4:58
S… Speaker 1 (5- The Iterator Interface)
list or a different data structure,
5:00
S… Speaker 1 (5- The Iterator Interface)
this iterator is the only place where we have to modify our code.
5:04
S… Speaker 2 (5- The Iterator Interface)
Now,
5:05
S… Speaker 1 (5- The Iterator Interface)
back to our main class,
5:07
S… Speaker 1 (5- The Iterator Interface)
let's add a couple of items in this list.
5:10
S… Speaker 1 (5- The Iterator Interface)
Let's add A and then B.
5:12
S… Speaker 1 (5- The Iterator Interface)
Here we can iterate over this list using a for each loop.
5:15
S… Speaker 2 (5- The Iterator Interface)
Take a look.
5:17
S… Speaker 1 (5- The Iterator Interface)
We get A and B.
5:19
S… Speaker 1 (5- The Iterator Interface)
Next we're going to talk about the collection interface.

Dit transcript werd gegenereerd door AI (automatische spraakherkenning). Kan fouten bevatten..verifieer tegen de oorspronkelijke audio voor kritisch gebruik. AI-beleid

❤️ Hou je van STT.ai? Vertel het je vrienden!
Samenvatting
Klik op Summarize om een AI samenvatting van dit transcript te genereren.
Samengevat...
Vraag AI over dit Transcript
Vraag maar iets over dit transcript De AI zal relevante secties en antwoord vinden.