A mostrar apenas
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.

Essa transcrição foi gerada pela IA (reconhecimento automático de fala). Pode conter erros — verificar contra o áudio original para uso crítico. Política de IA

❤️ Adora o STT.ai? Conte aos seus amigos!
Resumo
Clique em Summarize para gerar um resumo de IA desta transcrição.
Resumindo...
Pergunte à IA sobre este Transcrito
Pergunte qualquer coisa sobre esta transcrição — a IA vai encontrar seções relevantes e resposta.