1

00:00:00,990  -->  00:00:02,150
Hi there.

2

00:00:02,370  -->  00:00:07,520
Now let's look at another class from the jackpot out Udal package which just called us artists.

3

00:00:07,560  -->  00:00:12,870
So we looked at tons of they walked us in this chapter and now let's go back to our old unreliable friend

4

00:00:13,040  -->  00:00:14,020
which is an art.

5

00:00:14,440  -->  00:00:20,520
The class Arias is a generic utility class and it helps us in manipulating memory through its various

6

00:00:20,520  -->  00:00:21,530
methods.

7

00:00:21,720  -->  00:00:26,610
It has methods which can help us can work on our end to an idealist.

8

00:00:26,640  -->  00:00:32,400
Similarly it also has methods that can help us sort of through our search for an element in an eddy

9

00:00:32,760  -->  00:00:38,570
or even make a copy of an array or compare it to our race to see whether they're identical contents

10

00:00:38,560  -->  00:00:39,210
.

11

00:00:39,300  -->  00:00:43,720
So it has lots of useful utility markets and in July 8.

12

00:00:43,720  -->  00:00:49,580
So what are the new methods that support bodyless operations have been added with this class.

13

00:00:49,590  -->  00:00:54,590
But in this class we will focus on only its core methods which are sequential.

14

00:00:55,050  -->  00:00:59,100
But in a subsequent lesson they will look at the paralyzed methods befre.

15

00:00:59,520  -->  00:01:05,490
Finally note that most methods in this class how overloaded with sions to support race of different

16

00:01:05,490  -->  00:01:07,290
pyramidal types.

17

00:01:07,290  -->  00:01:12,090
Also you will see overloaded methods that big arrays of object by present.

18

00:01:12,780  -->  00:01:21,030
In this demo we will mostly focus on methods that are in our ideas of object By-Passed parameters other

19

00:01:21,030  -->  00:01:23,640
overloaded motions look in the CMB.

20

00:01:24,120  -->  00:01:27,280
So let's go ahead and look at what this class has to offer.

21

00:01:27,750  -->  00:01:34,050
So here we can see that the R is glass is from the door Trudel package and a new class called is devil

22

00:01:34,140  -->  00:01:38,840
has been added to the elections package on that than this I raised a glass.

23

00:01:38,850  -->  00:01:45,720
We have the sequential order so that we can demonstrate all sequential operations in this response.

24

00:01:45,720  -->  00:01:49,420
So here I have already written a lot of code here.

25

00:01:49,530  -->  00:01:53,940
So we want to demonstrate many of the methods in this class.

26

00:01:54,000  -->  00:01:58,270
So in the interest of time I wonder did it end up in locations.

27

00:01:58,410  -->  00:02:01,660
So we don't have to write any code now.

28

00:02:01,800  -->  00:02:02,070
OK.

29

00:02:02,070  -->  00:02:07,490
Because I predict all of nine so just go ahead and look at all of the code that I have already written

30

00:02:07,890  -->  00:02:13,550
and I'm going to blurt very strongly very clearly so that we can look at each method in a very clearly

31

00:02:13,570  -->  00:02:14,080
.

32

00:02:14,460  -->  00:02:21,120
So the first method that we want to look at is as a list and this is probably the most commonly used

33

00:02:21,120  -->  00:02:28,520
method which you will use from this class and what this method does is as the name indicates it takes

34

00:02:28,530  -->  00:02:32,890
an input re and it returns a list list B.

35

00:02:32,950  -->  00:02:36,860
So it is saying that give me a list view of the right.

36

00:02:37,290  -->  00:02:39,230
So here we how string are it.

37

00:02:39,360  -->  00:02:41,260
Let's look at this definition.

38

00:02:41,280  -->  00:02:42,750
So this is the awesomeness.

39

00:02:42,780  -->  00:02:47,320
And here we have a wad of spectrometer and we know that this is a generic notation.

40

00:02:47,340  -->  00:02:55,130
So this is a type and we are saying that the return list should also how elements of that are in here

41

00:02:55,130  -->  00:02:55,610
.

42

00:02:55,920  -->  00:03:02,830
We are creating a string array and passing that string as an input to this method as honest and it reads

43

00:03:02,850  -->  00:03:06,160
a list of strings and intermediate and so on our list.

44

00:03:06,360  -->  00:03:09,940
But the thing is this other list will be off fixed sites.

45

00:03:10,170  -->  00:03:12,140
OK so that's the most important thing.

46

00:03:12,480  -->  00:03:19,230
So always remember this thing if ever you want to convert an array into a list and do not eat less than

47

00:03:19,290  -->  00:03:21,830
you would use this method as a list.

48

00:03:21,880  -->  00:03:22,250
OK.

49

00:03:22,290  -->  00:03:27,330
Just always keep that in mind since it is an idea we will use to address costs.

50

00:03:27,410  -->  00:03:28,980
Here we are printing the strengths.

51

00:03:28,980  -->  00:03:32,840
So let me just run this case or it prints Rajan on it.

52

00:03:32,880  -->  00:03:33,900
So there's a list.

53

00:03:33,990  -->  00:03:41,400
Now it's a fixed size list and what it means is that you cannot remove an element or you cannot identity

54

00:03:41,400  -->  00:03:41,860
make.

55

00:03:42,150  -->  00:03:46,290
If you try to do that the return on their list will throw an error.

56

00:03:46,470  -->  00:03:47,050
OK.

57

00:03:47,070  -->  00:03:48,550
So let's also try that.

58

00:03:48,710  -->  00:03:55,070
Let me just remind you to try to run it as you can see it says unsupported operation exception.

59

00:03:55,260  -->  00:03:59,390
So the written order list is not going to support this anymore operation.

60

00:03:59,550  -->  00:04:03,810
As soon as we can walk it it will through an unsupported operation exception.

61

00:04:03,870  -->  00:04:04,770
And here it is.

62

00:04:04,830  -->  00:04:07,460
X is not the same thing happens with.

63

00:04:07,500  -->  00:04:11,310
I'd also let you go.

64

00:04:11,610  -->  00:04:14,210
But you can actually update the value.

65

00:04:14,220  -->  00:04:15,170
That is fine.

66

00:04:15,180  -->  00:04:21,390
So let's update the 0 8 value value John and that would reflect in the order you're not added to.

67

00:04:21,470  -->  00:04:24,610
So this other list is backed by the original not it.

68

00:04:24,780  -->  00:04:28,040
So let me just print that.

69

00:04:28,080  -->  00:04:33,540
So as you can see here we are printing and Ari does the original array a latte and it is printing the

70

00:04:33,540  -->  00:04:34,960
updated values.

71

00:04:34,970  -->  00:04:35,190
OK.

72

00:04:35,220  -->  00:04:38,340
John I 90 earlier it was rajin on it.

73

00:04:38,540  -->  00:04:43,260
Now here I'm using this method called just to string from the artist class itself.

74

00:04:43,260  -->  00:04:49,740
So the string method will take an array and will return a string representation of the elements so it

75

00:04:49,740  -->  00:04:52,700
will concatenate all of the elements using comma.

76

00:04:52,860  -->  00:04:57,040
And it really and goes it in and square brackets on to display the output.

77

00:04:57,120  -->  00:05:01,520
Search says that's returns a string the presentation of the contents of those mystified.

78

00:05:02,010  -->  00:05:02,960
It's all there does.

79

00:05:02,970  -->  00:05:06,990
So we will be using this tool string method from the IRS class in this Demel.

80

00:05:07,080  -->  00:05:11,030
Now let's go ahead and look at more of the methods.

81

00:05:11,040  -->  00:05:16,180
So here we know that it returns a fixed size order list.

82

00:05:16,200  -->  00:05:22,530
Now if you want to take an RV but if you want to idlest to be modifiable then you could use something

83

00:05:22,530  -->  00:05:28,640
like this so here all we are doing is to shift goal.

84

00:05:28,810  -->  00:05:35,230
So we are still invoking the as just matter which we're done at a fixed size idlest that is being passed

85

00:05:35,220  -->  00:05:38,630
as the input argument to the idlest constructor.

86

00:05:38,640  -->  00:05:44,430
So there is a constructor which were big this collection has input and we are simply passing this on

87

00:05:44,440  -->  00:05:45,330
to this.

88

00:05:45,330  -->  00:05:49,100
So now once you do that you can modify the resulting string.

89

00:05:49,190  -->  00:05:53,450
Now the strings as it will be it will be modifiable eyewitnessed.

90

00:05:53,560  -->  00:05:59,190
So that's how you would create a modifiable list from an input.

91

00:05:59,910  -->  00:06:04,270
Now the ostlers method we know it takes a lot occiput ometer.

92

00:06:04,410  -->  00:06:05,880
So it's sort of passing or not it.

93

00:06:05,890  -->  00:06:10,820
We can also pass Comus operator lists so that we don't so much problem.

94

00:06:10,890  -->  00:06:16,890
So here we have seen that the Azi just matter is taking an input array which is already populated.

95

00:06:17,220  -->  00:06:23,560
Now let's say we just want we don't have any idea but just popular with data but we simply want to create

96

00:06:23,640  -->  00:06:26,130
an other list of fixed size.

97

00:06:26,380  -->  00:06:29,400
Then here is the idiom we can follow this.

98

00:06:29,400  -->  00:06:33,430
So here when we say as a list and we are passing a string array.

99

00:06:33,450  -->  00:06:39,790
Which means the resulting idlest should include strings and we are saying the size should be three.

100

00:06:39,840  -->  00:06:43,280
And this gives greater done or not a list of fixed size.

101

00:06:43,500  -->  00:06:45,750
And this does not have any elements.

102

00:06:45,960  -->  00:06:48,770
So it would be nullable Yes it would be filled with not.

103

00:06:48,810  -->  00:06:50,650
And it is a fixed size.

104

00:06:50,700  -->  00:06:51,870
So that's how you do it.

105

00:06:51,880  -->  00:06:55,320
If you recall the idlest class is orderless constructor.

106

00:06:55,320  -->  00:06:58,110
There was one constructor which takes capacity as input.

107

00:06:58,320  -->  00:07:03,000
But if you use that constructor it would create an order list of that capacity.

108

00:07:03,060  -->  00:07:07,790
But as soon as the capacity is reached the other the size will be automatically increased.

109

00:07:07,920  -->  00:07:10,630
OK so it's not really a fixed size idlest.

110

00:07:10,690  -->  00:07:13,740
So if you do that you wouldn't get it fixed size or it is.

111

00:07:13,800  -->  00:07:20,330
So if you want to create a fixed size artists and this is the idiom that you need to follow next.

112

00:07:20,340  -->  00:07:23,570
Now let's look at one more example grid example here.

113

00:07:23,700  -->  00:07:28,920
So here we have this other list as list and we are using an end.

114

00:07:29,040  -->  00:07:31,700
So this is an object or ELF object.

115

00:07:31,770  -->  00:07:33,700
But here this is an hour off.

116

00:07:33,700  -->  00:07:35,940
And so this wouldn't work.

117

00:07:35,940  -->  00:07:43,260
So you cannot expect that it would return a list of integer and that's because this new age of two is

118

00:07:43,260  -->  00:07:44,870
not auto boxes.

119

00:07:44,940  -->  00:07:49,010
OK so you it will knock on what this Indu new in digital.

120

00:07:49,070  -->  00:07:51,610
If it was new in digital photo then it would work fine.

121

00:07:51,680  -->  00:07:51,920
OK.

122

00:07:51,930  -->  00:07:58,740
So let's just make this new integer in that case it does fine but it does just primitive then it will

123

00:07:58,750  -->  00:07:59,770
not work.

124

00:07:59,890  -->  00:08:05,820
And we knew we already know the reason for that because in auto boxing you recall our auto boxing lesson

125

00:08:05,880  -->  00:08:13,120
we said that arrays are not auto blossomy which means that this will not be converted into new off integer

126

00:08:13,200  -->  00:08:14,120
offered.

127

00:08:14,280  -->  00:08:21,870
So because of that property This assignment will not look to be get a compilation error but this would

128

00:08:21,880  -->  00:08:23,110
still work.

129

00:08:23,670  -->  00:08:29,990
So if you have something like this as list new and off to denigratory done and list off in digerati

130

00:08:30,010  -->  00:08:30,500
.

131

00:08:30,810  -->  00:08:38,060
So this would create an idealist underground how only one element which would be an ID and the size

132

00:08:38,080  -->  00:08:39,980
of that is true.

133

00:08:40,120  -->  00:08:41,170
That is fine.

134

00:08:41,230  -->  00:08:44,250
Let me just print this.

135

00:08:44,250  -->  00:08:49,420
So as you can see the size of this of a fixed fixed let's do is 1.

136

00:08:49,500  -->  00:08:54,310
So that's about as list not it's more to the next category of models which is soc.

137

00:08:54,500  -->  00:09:01,510
And let's look at two soft methods one of them is sacque undertakes an object array under it and so

138

00:09:01,510  -->  00:09:08,980
why it and this particular method uses a much sought bit natural oddity which means that the idea that

139

00:09:09,000  -->  00:09:13,640
the elements should have implemented compatible interface.

140

00:09:13,750  -->  00:09:17,270
Now the specification also says that effort is partially soccer at it.

141

00:09:17,280  -->  00:09:24,870
If this idea is already partially sorted then we would need far fewer than analogon comparisons and

142

00:09:24,880  -->  00:09:25,760
logging to compare results.

143

00:09:25,770  -->  00:09:30,630
Mozart needs analogon but it will be far fewer than that if it is partially sawder and if it is almost

144

00:09:30,630  -->  00:09:36,280
soldered it would be approximately and comparisons only where n is the precise.

145

00:09:36,300  -->  00:09:39,300
So let's go ahead and run this string array.

146

00:09:39,300  -->  00:09:42,230
I mean common this out from here.

147

00:09:42,750  -->  00:09:44,570
As you can see it prints on it donjon.

148

00:09:44,620  -->  00:09:45,830
So it has been.

149

00:09:45,860  -->  00:09:47,930
It has already been sorted out.

150

00:09:48,120  -->  00:09:51,320
Now there are some additional comments that this particular makes.

151

00:09:51,340  -->  00:09:56,620
It says that it is well suited for merging two or more socket ideas.

152

00:09:56,760  -->  00:10:02,310
So if you have two or more arrays which are already sorted then the way you would much them on your

153

00:10:02,370  -->  00:10:08,500
website as you would simply concatenate the address and then sort the resulting at it because they're

154

00:10:08,500  -->  00:10:10,180
already partially.

155

00:10:10,200  -->  00:10:15,960
Each of the ideas are already sorted which means which means the munged entries are partially sorted

156

00:10:15,970  -->  00:10:16,090
.

157

00:10:16,290  -->  00:10:24,600
So we have a much faster way to sort the much edit so the resulting ID will be sorted in a very efficient

158

00:10:24,610  -->  00:10:25,370
way.

159

00:10:25,530  -->  00:10:29,570
So that's with an object array no lips sought an ID.

160

00:10:29,790  -->  00:10:36,510
OK if it is an array of primitives then the saut method would use a quick song.

161

00:10:37,000  -->  00:10:41,370
So let's here we have a new array and it has these three elements.

162

00:10:41,380  -->  00:10:42,460
So if I run it.

163

00:10:42,880  -->  00:10:44,490
So the elements are Saltaire.

164

00:10:44,870  -->  00:10:51,510
OK and once again we are using the string method and passing the IRA I know as I mentioned there are

165

00:10:51,580  -->  00:10:54,690
some overloaded versions of a lot of overloaded versions.

166

00:10:54,700  -->  00:10:59,250
This is taking an entire day but you also have or a double idea and so on.

167

00:10:59,280  -->  00:11:02,470
Now there is also another version of SOC which takes a competitor.

168

00:11:02,570  -->  00:11:05,340
Here we have general extradition which is fine.

169

00:11:05,470  -->  00:11:09,280
We can you will understand later but it takes a competitor.

170

00:11:09,420  -->  00:11:15,380
So earlier post natural ordering about this sort of notion sort method will take a competitor and uses

171

00:11:15,390  -->  00:11:23,100
that competitor to sort the elements and the commandant out in here.

172

00:11:23,120  -->  00:11:28,230
So you're done with sorting we are done with as list next is binary search on the binary search method

173

00:11:28,240  -->  00:11:28,430
.

174

00:11:28,450  -->  00:11:33,290
Basically it takes an hour day and will search for this.

175

00:11:33,290  -->  00:11:37,450
It's a search method Mystikal your search matter under which it uses binary search algorithm.

176

00:11:37,720  -->  00:11:40,300
So it is used for searching for this element.

177

00:11:40,290  -->  00:11:43,120
The second parameter in this input.

178

00:11:43,500  -->  00:11:49,450
OK on the return type is if the element is fun done the group returned the index of the element in the

179

00:11:49,450  -->  00:11:50,140
Arctic.

180

00:11:50,560  -->  00:11:57,040
Otherwise the binary search method then look at the index position where this element can be inserted

181

00:11:57,040  -->  00:11:57,230
.

182

00:11:57,580  -->  00:12:04,450
If the element is not then and it returns the insertion point and negates it and oxyd minus one.

183

00:12:04,750  -->  00:12:08,640
And the specification also says that the input must be sorted.

184

00:12:08,830  -->  00:12:15,490
Otherwise the behavior is undefined but does the specification but it all depends upon the JVM implementation

185

00:12:15,590  -->  00:12:16,590
and on my mission.

186

00:12:16,620  -->  00:12:22,020
Even if that is not sorted it still finds the element Anderton's the appropriate index even if it is

187

00:12:22,020  -->  00:12:27,060
not shocking what can go ahead and look at this burn statement here.

188

00:12:27,070  -->  00:12:33,150
So we have the Areff 4:23 and fifty nine and we are trying to search for this element for under childred

189

00:12:33,150  -->  00:12:37,280
done the index 0 undertaken zero.

190

00:12:37,380  -->  00:12:41,330
Now let's look for five under-achieved return.

191

00:12:41,670  -->  00:12:45,060
I guess Heterodynes minus two minus two.

192

00:12:45,140  -->  00:12:49,460
OK because you would have been inserted here at the first position.

193

00:12:49,890  -->  00:12:56,570
And we are right in your minus one quick K minus off one and another minus one.

194

00:12:56,640  -->  00:12:59,420
So that's about the binary search matter.

195

00:12:59,670  -->  00:13:01,780
Now let's look at copy off.

196

00:13:01,770  -->  00:13:05,530
So as a name names I'll just copy off what's included in a copy of this idea.

197

00:13:06,060  -->  00:13:08,140
And we are also specifying the method.

198

00:13:08,380  -->  00:13:08,700
OK.

199

00:13:08,710  -->  00:13:11,410
We are also specifying the Nant of the new ID.

200

00:13:11,400  -->  00:13:18,850
Now if that length is greater than the length of this input array then for all the remaining slots.

201

00:13:18,880  -->  00:13:21,950
OK it would copy all of the elements from this from.

202

00:13:22,000  -->  00:13:23,740
From this era into the new array.

203

00:13:23,740  -->  00:13:28,990
But for all the remaining elements remaining slots it would add a zero.

204

00:13:29,010  -->  00:13:32,110
So the new array will be written here.

205

00:13:32,590  -->  00:13:36,050
So to me you know and so here is a new audit.

206

00:13:36,120  -->  00:13:40,470
Now data size has been increased often you already are just filled with zero.

207

00:13:40,890  -->  00:13:44,070
Next is this is a slight detour.

208

00:13:44,350  -->  00:13:49,470
There is an audit copy mattered in the system class which is from the dollar dot like package on it

209

00:13:49,510  -->  00:13:51,100
but almost the exact same thing.

210

00:13:51,100  -->  00:13:55,200
So I just want to show that also I think we'll discuss this matter earlier involved that occurs.

211

00:13:55,370  -->  00:13:58,060
So it takes this input it which is the source.

212

00:13:58,210  -->  00:13:59,850
And this is their destination ID.

213

00:14:00,130  -->  00:14:05,560
And this is the position in the source are they from where we want to start copying the elements.

214

00:14:05,570  -->  00:14:06,730
And this is their destination.

215

00:14:06,780  -->  00:14:12,880
And this is the start position in the data destination are they where we want to copy the elements from

216

00:14:13,010  -->  00:14:20,880
IRA and Ira learned as the number of elements that need to be copied and if new or it happens to be

217

00:14:20,880  -->  00:14:26,140
a larger area than all the all the slots of the remaining slots will be filled with zero.

218

00:14:26,130  -->  00:14:28,360
This doesn't that all be all.

219

00:14:28,570  -->  00:14:31,100
So let me just run that also.

220

00:14:31,980  -->  00:14:33,980
He does search just the same array.

221

00:14:34,120  -->  00:14:35,640
So these are two different areas.

222

00:14:35,710  -->  00:14:41,640
In fact copy off actually in dentally uses a copy but probably does a slightly cleaner way to do it

223

00:14:41,760  -->  00:14:45,590
because the the other you don't have to pass on our eight week new ID.

224

00:14:45,620  -->  00:14:49,520
It in itself is creating order under disorder Dunning it.

225

00:14:50,050  -->  00:14:51,860
So that's the added copy.

226

00:14:51,880  -->  00:14:55,960
So that's how you do it instead of creating a for loop and rotating.

227

00:14:56,050  -->  00:15:00,740
I needed to the follow up on creating a new ID and copying that immense friend.

228

00:15:00,880  -->  00:15:03,590
You can use a single statement in this way.

229

00:15:03,850  -->  00:15:10,760
Next as a film after the film that basically takes an ID and fills each element with this element.

230

00:15:10,770  -->  00:15:16,500
So once you invoke this every element will have in the table have this 130.

231

00:15:16,800  -->  00:15:20,230
So that's got you.

232

00:15:20,350  -->  00:15:27,090
Or does the new array now has only 30 so that's a good way to initialize not a bet on the one element

233

00:15:27,100  -->  00:15:27,910
.

234

00:15:27,900  -->  00:15:34,480
Now next this equals my third equals but that basically takes both the address and would return true

235

00:15:34,680  -->  00:15:40,210
if both the items are equal which means that dot is off the same type of the same size and they have

236

00:15:40,200  -->  00:15:42,270
the exact same contents.

237

00:15:42,270  -->  00:15:52,950
So let's just try that on your phones because Ira has these elements 4:23 19 but nobody has these elements

238

00:15:52,950  -->  00:15:53,180
.

239

00:15:53,180  -->  00:15:53,470
OK.

240

00:15:53,590  -->  00:15:54,780
So it's not equal.

241

00:15:55,140  -->  00:15:56,540
So that's the equals method.

242

00:15:56,580  -->  00:16:00,190
Now finally let's look at these medical deep equals.

243

00:16:00,420  -->  00:16:07,620
So it is also equals third but it does it beat equals which means that if we have mastered Aarhus then

244

00:16:07,620  -->  00:16:10,900
it would still be able to compare the IDs.

245

00:16:10,990  -->  00:16:17,360
No it's not just a single dimension but multi-dimensionally is going to start out is but this metric

246

00:16:17,390  -->  00:16:20,140
takes an hour off object.

247

00:16:20,130  -->  00:16:25,410
So here we can see that it's an array of objects to or else objects are just the comparison.

248

00:16:25,670  -->  00:16:32,010
So if our eyes are deeply equal to one another and by deeply it means that there are more than what

249

00:16:32,000  -->  00:16:34,040
are appropriate for nested M.S..

250

00:16:34,330  -->  00:16:38,770
OK so let's go ahead and look at a few examples here we have to be buddies.

251

00:16:38,880  -->  00:16:45,200
They are a one on deep or two which are three dimensional arrays and these are the elements.

252

00:16:45,580  -->  00:16:52,210
And in this print statement we are working with the artist you just run it and you agreed and said to

253

00:16:52,360  -->  00:16:55,330
my wife I changed this to sixty one.

254

00:16:55,790  -->  00:16:56,170
OK.

255

00:16:56,190  -->  00:16:59,600
Now it does not equal under two fonts.

256

00:17:00,010  -->  00:17:02,220
Knowledge is a two dimensional not a.

257

00:17:02,290  -->  00:17:07,040
Here going the same elements and it will also work fine.

258

00:17:07,440  -->  00:17:08,170
OK.

259

00:17:08,160  -->  00:17:13,130
Now let's take the next example which is of one dimension.

260

00:17:13,140  -->  00:17:15,210
Now with this we get a combine.

261

00:17:15,570  -->  00:17:16,140
OK.

262

00:17:16,300  -->  00:17:22,830
That's because all of these ideas cannot be assigned to idea of objects.

263

00:17:22,840  -->  00:17:26,360
The reason is this whole thing is just an object.

264

00:17:26,400  -->  00:17:31,010
It is not an idea of object if it was an object then it would have been fine.

265

00:17:31,030  -->  00:17:39,820
Now here this is an odd off in art and art is an object so an art off and art is basically an idea or

266

00:17:39,880  -->  00:17:40,670
object.

267

00:17:40,760  -->  00:17:42,640
And so there was no problem.

268

00:17:42,630  -->  00:17:44,420
But here it is just an object.

269

00:17:44,550  -->  00:17:46,520
It's not an object.

270

00:17:46,570  -->  00:17:53,340
So this they call it does covariance let go and variants as if there are two types.

271

00:17:53,350  -->  00:17:58,540
Let's say one of them is object on the other one is an integer.

272

00:17:58,540  -->  00:18:01,010
Now we know that indeed there is a subtype of object.

273

00:18:01,120  -->  00:18:05,170
So if that is the case then it also means that object.

274

00:18:05,160  -->  00:18:12,770
RFE RL object is a supertype of integer so if integer is it's a type of object then an integer is a

275

00:18:12,830  -->  00:18:12,980
.

276

00:18:13,070  -->  00:18:15,710
So pipe all idea off ogic.

277

00:18:15,720  -->  00:18:18,410
So that's what covariance means.

278

00:18:18,410  -->  00:18:18,670
OK.

279

00:18:18,670  -->  00:18:25,460
And that does not work here as in but it is not as a type of object or object at it.

280

00:18:25,610  -->  00:18:30,200
OK but had it been like this then it would be fine now.

281

00:18:30,220  -->  00:18:32,140
So this does not compile.

282

00:18:32,740  -->  00:18:35,740
OK so that's what's also that's an important thing.

283

00:18:35,830  -->  00:18:42,570
And we'll get back with this covariance thing and generics lesson because in genetics with genetics

284

00:18:42,610  -->  00:18:45,000
we have a property called invariants.

285

00:18:45,010  -->  00:18:51,200
So when we get data we will once again discuss this covariance property off ice and here.

286

00:18:51,630  -->  00:18:57,200
So here earlier it was a off object was a barometer of the quotes.

287

00:18:57,220  -->  00:19:00,360
So we are just demonstrating something here.

288

00:19:00,390  -->  00:19:07,010
So here we are trying to assign an three dimensional not so here this would be an idea or object right

289

00:19:07,010  -->  00:19:07,050
.

290

00:19:07,060  -->  00:19:14,080
So I guess it would be an idea off and in two dimensional I guess it could get stronger as a two dimensional

291

00:19:14,090  -->  00:19:17,340
body not a three dimensional body on here.

292

00:19:17,440  -->  00:19:22,700
And this equipment the value of zero of two it would be three.

293

00:19:22,800  -->  00:19:24,300
So that's all it is just a monster.

294

00:19:24,300  -->  00:19:27,160
The same thing we have these three statements.

295

00:19:27,180  -->  00:19:29,590
Let me also show the API.

296

00:19:29,970  -->  00:19:36,490
So as you can see each Metford like the binary search has all these different parameters.

297

00:19:36,490  -->  00:19:38,260
There is also some arrangement there.

298

00:19:38,280  -->  00:19:40,220
Here you can take a look at this.

299

00:19:40,240  -->  00:19:44,990
So each degree of methods have several overloaded versions.

300

00:19:45,120  -->  00:19:47,820
So that's the artist class and that's it.

301

00:19:47,830  -->  00:19:51,520
And the court will be available in the resource section and that's about it.

302

00:19:51,630  -->  00:19:53,820
Thank you and I'll be quoting
