1

00:00:01,080  -->  00:00:02,220
Hi there.

2

00:00:02,430  -->  00:00:03,700
Now let's look at Greece.

3

00:00:03,700  -->  00:00:06,360
It will also be doing a demographic.

4

00:00:06,640  -->  00:00:12,800
We will have to look at comparable uncompetitive interfaces that are probably popular among interviewers

5

00:00:12,810  -->  00:00:13,800
.

6

00:00:13,830  -->  00:00:18,420
One question could be what the difference is in between these two interfaces.

7

00:00:18,780  -->  00:00:23,440
So this lesson will surely help you answer such questions.

8

00:00:23,760  -->  00:00:28,470
It reset as the name implies uses a the data structure.

9

00:00:28,470  -->  00:00:32,060
Specifically it uses something called the red black tree.

10

00:00:32,400  -->  00:00:33,800
So it is a red black tree.

11

00:00:33,810  -->  00:00:37,310
Best implementation of a navigable search interface.

12

00:00:37,620  -->  00:00:38,190
OK.

13

00:00:38,460  -->  00:00:42,260
And internally it uses a tree map just like the.

14

00:00:42,310  -->  00:00:48,670
Set uses it Hashima on tree map stores key value based.

15

00:00:49,200  -->  00:00:56,370
But resect has only elements so it will start the elements Eskies while it will store an empty object

16

00:00:56,670  -->  00:01:00,750
that is an instance of Object class as the value.

17

00:01:00,750  -->  00:01:03,700
Now if you recall Hastert also does the.

18

00:01:04,450  -->  00:01:11,600
And if you're interested you can check out the source code of the augmented within that reset Plus we

19

00:01:11,650  -->  00:01:15,250
know the preset elements will be unique are not also sorted.

20

00:01:15,570  -->  00:01:22,890
And it is unique because it is a set although it is slightly slower than Hasek it still offers fast

21

00:01:22,890  -->  00:01:29,800
Look up with a logarithmic complexity for I'd read more on contains methods for Hasek.

22

00:01:29,890  -->  00:01:34,570
I recall that these operations were supported in constant time.

23

00:01:35,160  -->  00:01:41,520
And here's an example where we are creating a Chrisette offsprings on adding three strings.

24

00:01:41,520  -->  00:01:45,030
When we paint them we can see that they are sorted under string.

25

00:01:45,060  -->  00:01:53,620
One one one gets printed as the first element which is followed by ABC which is then followed by D on

26

00:01:54,180  -->  00:01:55,470
the rest of the lesson.

27

00:01:55,620  -->  00:02:00,450
Let's head over to our editor and learn by writing some code.

28

00:02:01,770  -->  00:02:08,490
OK here we are in the second more class so we look at this class and set them all on we had this method

29

00:02:08,490  -->  00:02:09,810
call us Hassidim.

30

00:02:10,050  -->  00:02:14,500
So for them all we are going to have a new method called Greaser's them.

31

00:02:14,750  -->  00:02:15,120
OK.

32

00:02:15,150  -->  00:02:16,260
And here it is.

33

00:02:16,620  -->  00:02:21,660
So in this light we saw how we can create a set of strings.

34

00:02:21,660  -->  00:02:28,000
Now let's see how we can create a three set off user defined object which is the book.

35

00:02:28,050  -->  00:02:33,720
So in the Hassidim all we looked at this class called book which is defined here at the bottom of the

36

00:02:33,720  -->  00:02:38,090
class and it had this state like title author on ear.

37

00:02:38,250  -->  00:02:39,050
If you recall.

38

00:02:39,090  -->  00:02:45,090
We also wrote a few methods like that to string hash called an equals method which you are needed for

39

00:02:45,090  -->  00:02:45,690
Hasek.

40

00:02:45,760  -->  00:02:46,070
OK.

41

00:02:46,080  -->  00:02:47,610
They were auto generated.

42

00:02:47,940  -->  00:02:50,560
So that's up on the cross on we are going to use the same class.

43

00:02:50,650  -->  00:02:51,990
Quarte Chrisette also.

44

00:02:52,140  -->  00:02:58,520
OK here we are creating four instances of book and just two of them have the same speed.

45

00:02:58,740  -->  00:02:59,130
OK.

46

00:02:59,130  -->  00:03:04,830
So they are Harry Potter books written by the same author and published in the same year and the third

47

00:03:04,830  -->  00:03:08,070
book is valid and the fourth book is effective Djala.

48

00:03:08,070  -->  00:03:12,180
Now here we are creating an instance of Chrisette.

49

00:03:12,510  -->  00:03:12,880
OK.

50

00:03:12,940  -->  00:03:15,630
Undestroyed set needs to store only books.

51

00:03:15,630  -->  00:03:21,300
So here we are using the notation the gender X notation on saying that it needs to be every set of books

52

00:03:21,660  -->  00:03:23,180
and that reference type is set.

53

00:03:23,190  -->  00:03:29,040
The countries that implements a set and we are writing the four books year and we are simply rating

54

00:03:29,130  -->  00:03:30,510
on printing the books.

55

00:03:30,780  -->  00:03:33,960
And when we pass the book it's going to end with the postering matter.

56

00:03:33,960  -->  00:03:39,810
We know that the posting method has been implemented in the book class so it overrides the string and

57

00:03:39,810  -->  00:03:41,420
the objects.

58

00:03:41,580  -->  00:03:44,630
So let's go ahead and run this.

59

00:03:44,670  -->  00:03:45,420
Here it is.

60

00:03:45,420  -->  00:03:47,720
So it is throwing an exception.

61

00:03:47,960  -->  00:03:53,960
OK this class gasp exception and we'll see what light is being generated.

62

00:03:54,250  -->  00:03:57,750
And it says it has something to do with comparable.

63

00:03:57,750  -->  00:04:03,870
So when it comes to objects user defined objects we are encountering this problem which was not there

64

00:04:04,200  -->  00:04:08,170
in the light which was about three set off strengths.

65

00:04:08,350  -->  00:04:08,600
OK.

66

00:04:08,610  -->  00:04:10,590
So there there was no exception.

67

00:04:10,590  -->  00:04:12,400
But here we are seeing an exception.

68

00:04:12,840  -->  00:04:16,520
So it has set the main concern was uniqueness.

69

00:04:16,800  -->  00:04:17,210
OK.

70

00:04:17,210  -->  00:04:20,990
And we were able to achieve it using hash Gaut unequals method.

71

00:04:21,120  -->  00:04:23,910
And they also helped us with the Hoshko method.

72

00:04:23,910  -->  00:04:31,460
Also how does it fast lookup bucket 3 set the how an additional requirement which is softening.

73

00:04:31,740  -->  00:04:35,990
OK so it needs to be unique it needs to be fast and it needs to also socket.

74

00:04:36,750  -->  00:04:38,350
So then Mrs. sautéing.

75

00:04:38,460  -->  00:04:44,130
So there is some additional thing that we need to do which means that there needs to be an order among

76

00:04:44,310  -->  00:04:45,540
the elements.

77

00:04:45,780  -->  00:04:49,680
Right because we need to sort those elements in a certain order.

78

00:04:49,960  -->  00:04:51,210
OK.

79

00:04:51,300  -->  00:04:53,560
There are two ways to do it.

80

00:04:53,580  -->  00:04:58,890
One is called us an eternal ordering which uses an interface called compatable.

81

00:04:58,890  -->  00:05:02,920
We need to implement that interface call comparable which is from Damodar like package.

82

00:05:03,080  -->  00:05:09,050
And the second approach is to use competitor OK it's also an interface from Dollar Audiard.

83

00:05:09,300  -->  00:05:11,020
So keep this in mind.

84

00:05:11,160  -->  00:05:16,910
So you have two approaches for this one is using the comparable which we are calling it as nature or

85

00:05:16,920  -->  00:05:17,500
ordering.

86

00:05:17,530  -->  00:05:19,400
On the other one is using competitor.

87

00:05:19,610  -->  00:05:20,140
OK.

88

00:05:20,250  -->  00:05:22,430
So you may have some interview questions on that.

89

00:05:22,440  -->  00:05:23,970
So pay attention to that.

90

00:05:23,970  -->  00:05:25,670
So keep that in mind.

91

00:05:25,960  -->  00:05:30,610
Now first let's look at the comparable interface which is a natural auguring.

92

00:05:30,840  -->  00:05:31,390
OK.

93

00:05:31,560  -->  00:05:37,590
Uncomfortable interface is from the dollar not like package and it has exactly one muttered card compared

94

00:05:37,590  -->  00:05:39,280
to OK.

95

00:05:39,520  -->  00:05:43,020
Uncompiled boot will tell us where to place the element.

96

00:05:43,140  -->  00:05:51,900
So compared to a third basically returns and value and that the anger value can be zero or one or it

97

00:05:51,900  -->  00:05:54,890
can be zero or a positive integer or a negative integer.

98

00:05:55,200  -->  00:06:00,260
Let's actually go ahead and look at the comparator in the API.

99

00:06:01,830  -->  00:06:08,370
So this is the comparable interface from the Java 8 API and it has this method compare to.

100

00:06:08,690  -->  00:06:09,290
OK.

101

00:06:09,480  -->  00:06:16,230
Now what happens is let's assume that there is already an element in the reset and you want to add a

102

00:06:16,230  -->  00:06:17,800
new element.

103

00:06:17,880  -->  00:06:24,300
So what research is going to do as Treece it is going to invoke the comparable method on the new element

104

00:06:24,300  -->  00:06:28,250
that you want to add and that will pass the existing element.

105

00:06:28,250  -->  00:06:34,290
The only element that is there and the reason it will be passed under compared to amateur we'll see

106

00:06:34,860  -->  00:06:38,280
whether we are too pleased or element if it returns a zero.

107

00:06:38,310  -->  00:06:43,200
It means that the new element is a duplicate and hence will not be added but effort returns a negative

108

00:06:43,200  -->  00:06:43,760
integer.

109

00:06:43,770  -->  00:06:49,240
It means that a new element has to be placed before the element that is already there.

110

00:06:49,450  -->  00:06:53,920
OK before the input element OK which means that it is done the input element.

111

00:06:54,120  -->  00:06:57,600
But if it returns a positive integer it means that it is greater than.

112

00:06:57,660  -->  00:07:00,750
So it needs to be placed after this element.

113

00:07:01,140  -->  00:07:08,100
Now if there are more than one element in that reset then the comparative method will be in bold on

114

00:07:08,170  -->  00:07:12,730
the new element that needs to be added but it will be added for each of the.

115

00:07:12,750  -->  00:07:15,510
It will be invoked for each of the elements.

116

00:07:15,630  -->  00:07:18,180
So that's what is going to happen.

117

00:07:18,180  -->  00:07:23,430
And so far one of the elements if Cresap finds that if that element that we want to add is a duplicate

118

00:07:23,880  -->  00:07:25,770
then it's going to roll down to zero.

119

00:07:26,020  -->  00:07:30,590
It's not going to do any for the comparisons with the subsequent elements.

120

00:07:30,590  -->  00:07:37,620
OK but if it returns or minus 1 x and replaces the element right before the existing element which is

121

00:07:37,620  -->  00:07:38,470
being compared.

122

00:07:38,850  -->  00:07:44,430
But if it returns a positive integer then it means that the newly added element has to be compared with

123

00:07:44,430  -->  00:07:45,430
the next element.

124

00:07:45,640  -->  00:07:45,990
OK.

125

00:07:46,050  -->  00:07:47,180
So that's the comparable method.

126

00:07:47,190  -->  00:07:51,490
And you can later when you have time you can also read about it.

127

00:07:51,510  -->  00:07:54,350
One thing I want to bring your attention to is this statement here.

128

00:07:54,390  -->  00:08:02,210
It says that if compared to Materi dunces zero when you do run ex-drug compared to white returns is

129

00:08:02,220  -->  00:08:05,310
zero which means that the new element is a duplicate.

130

00:08:05,310  -->  00:08:12,240
So in that case if the sample elements are also compared using equals mentored then equals also should

131

00:08:12,240  -->  00:08:13,440
read neutral.

132

00:08:13,440  -->  00:08:18,230
So they're saying don't try to have this kind of this kind of behavior.

133

00:08:18,390  -->  00:08:22,570
And they are strongly recommending it but it's not mandatory.

134

00:08:22,760  -->  00:08:24,560
And this is not the case.

135

00:08:24,660  -->  00:08:30,780
So in that case you would have to indicate that whether you are implementing this method compared to

136

00:08:30,790  -->  00:08:31,080
.

137

00:08:31,390  -->  00:08:31,670
OK.

138

00:08:31,680  -->  00:08:34,190
And here you need to have this kind of message.

139

00:08:34,200  -->  00:08:39,530
It says that this class has a natural ordering that is inconsistent with equals.

140

00:08:39,540  -->  00:08:43,770
So the next question is who is going to implement this comparable interface.

141

00:08:44,040  -->  00:08:47,210
So the compatible interface will be implemented by the bookless.

142

00:08:47,490  -->  00:08:48,210
OK.

143

00:08:48,210  -->  00:08:54,660
So the book Class whose objects will be stored in a preset is going to implement to implement a compatible

144

00:08:54,660  -->  00:08:57,720
interface and is going to override the compare to method.

145

00:08:58,140  -->  00:09:00,470
So let's go ahead and do that.

146

00:09:00,720  -->  00:09:02,570
It's actually done already.

147

00:09:02,610  -->  00:09:06,190
So here it is implements comparable.

148

00:09:06,210  -->  00:09:12,650
So this is from the law Gelada dot like package uncomparable net that is right here at the bottom.

149

00:09:12,720  -->  00:09:18,160
So compared to object is taking an object an instance of Object as input.

150

00:09:18,170  -->  00:09:23,400
So this compared to as we mentioned earlier is be really being worked on the new element that is going

151

00:09:23,400  -->  00:09:24,220
to be added.

152

00:09:24,540  -->  00:09:31,230
So this get Dido's right under title of the new element and we are calling the compare to method on

153

00:09:31,230  -->  00:09:31,760
that idea.

154

00:09:31,800  -->  00:09:33,120
So that title is a strength.

155

00:09:33,210  -->  00:09:36,150
So there is a comparative method in the string class also.

156

00:09:36,180  -->  00:09:43,500
So he's being in work and the object that we are passing as the input object since this is an off object

157

00:09:43,620  -->  00:09:45,080
type of object class.

158

00:09:45,220  -->  00:09:48,200
We don't just get the book and we are crutching.

159

00:09:48,210  -->  00:09:51,280
It's vital so that both the titles are being compared.

160

00:09:51,420  -->  00:09:54,100
So we are trying to sort by that item.

161

00:09:54,150  -->  00:09:54,800
OK.

162

00:09:55,110  -->  00:09:57,000
So that's the reason.

163

00:09:57,060  -->  00:09:59,480
So let's just go ahead and run this.

164

00:09:59,550  -->  00:10:05,650
Now if you see the elements got added on the second book did not get it because it was a duplicate.

165

00:10:05,670  -->  00:10:11,200
So the uniqueness was uniqueness is there unmoral where the elements are also sorted.

166

00:10:11,220  -->  00:10:15,410
So you can see the last one as a factor of Java then how the parts are done right.

167

00:10:15,810  -->  00:10:16,700
OK.

168

00:10:16,800  -->  00:10:23,520
Now in the slide we have seen a set of strengths and we did not see any issue with that.

169

00:10:23,670  -->  00:10:28,180
And that's because as the string class also implements comparable.

170

00:10:28,260  -->  00:10:33,080
Ok that's why we are able to invoke the comparative method on the string over here.

171

00:10:33,570  -->  00:10:40,410
So that's why we did not see any issue with that and it's just like compair just like string we might

172

00:10:40,410  -->  00:10:42,990
also want to add integers into it.

173

00:10:43,140  -->  00:10:50,420
So the integer class which is the boxed but I do also implements the comparable interface.

174

00:10:50,460  -->  00:10:56,090
Same also applies with same also goes with other boxes primitives like double float and on.

175

00:10:56,100  -->  00:11:03,290
So all of them implement it so that those elements can be stored and treated and there can be are dead

176

00:11:03,300  -->  00:11:03,540
.

177

00:11:03,870  -->  00:11:06,010
They can be sorted.

178

00:11:06,420  -->  00:11:11,970
Now the reason it is qualis natural ordering is because the elements themselves are seeing how they

179

00:11:11,970  -->  00:11:13,430
have to be sorted.

180

00:11:13,650  -->  00:11:16,960
OK so they are defining the actual sorting logic.

181

00:11:17,130  -->  00:11:19,560
So think after you it as just a framework.

182

00:11:19,850  -->  00:11:23,140
And it needs to be told how to suck OK.

183

00:11:23,150  -->  00:11:24,520
And the first approach.

184

00:11:24,600  -->  00:11:30,090
So which is the natural ordering the elements themselves which are going to be stored are seeing how

185

00:11:30,370  -->  00:11:31,790
hard they need to be Socky.

186

00:11:31,900  -->  00:11:34,330
OK that's why it's called us natural Adoni.

187

00:11:34,450  -->  00:11:34,730
OK.

188

00:11:34,740  -->  00:11:38,640
Because the sorting criterion is coming from the elements themselves.

189

00:11:38,790  -->  00:11:40,650
So that's about nature ordering.

190

00:11:40,650  -->  00:11:45,730
Now let's look at the second approach which is to use a competitor which is from the job what are your

191

00:11:45,850  -->  00:11:53,010
package and with competitor unlike in the comparable case the sautéing criteria comes externally.

192

00:11:53,010  -->  00:11:57,650
So the book objects will not define this art incredibly I forgot.

193

00:11:57,890  -->  00:11:58,470
OK.

194

00:11:58,710  -->  00:12:02,340
So let's also look at that not before doing that.

195

00:12:02,340  -->  00:12:04,420
Let me just mention one more thing.

196

00:12:04,500  -->  00:12:12,360
So the comparable method you know it is returning and which can be zero or it can be negative or positive

197

00:12:12,360  -->  00:12:19,130
integer so that negative or positive integer is what is differentiating it from the equals method and

198

00:12:19,140  -->  00:12:21,510
has said we looked at the he equals metric.

199

00:12:21,720  -->  00:12:25,680
So in this guess since it's more than equal it needs to be more than equal.

200

00:12:25,680  -->  00:12:30,000
So the goal is to not just detect uniqueness but also to sort.

201

00:12:30,120  -->  00:12:36,050
So that's the reason we how the negative integer on positive integer being returned by this matter.

202

00:12:36,270  -->  00:12:39,730
Now let's look at competitor.

203

00:12:39,810  -->  00:12:41,450
So here is a competitor method.

204

00:12:41,510  -->  00:12:47,170
And here is the compare matter undertakes two objects and it compares them.

205

00:12:47,500  -->  00:12:48,080
OK.

206

00:12:48,240  -->  00:12:53,550
So we need competitor needs to be implemented separately by a new class and you are going to do that

207

00:12:53,570  -->  00:12:54,110
.

208

00:12:54,780  -->  00:12:59,470
And it also has some other matters some static models but let's not worry about it.

209

00:12:59,520  -->  00:13:02,150
The only abstract matter is the Complera matter.

210

00:13:02,190  -->  00:13:04,600
Let's just go ahead and implement that.

211

00:13:04,870  -->  00:13:09,810
And like I said earlier even the integer class has the compare to matter.

212

00:13:09,900  -->  00:13:14,800
So let's go back here and let's implement a new class.

213

00:13:15,110  -->  00:13:27,280
It's called a spiteful competitor which implements a better interface and much control.

214

00:13:27,350  -->  00:13:35,180
Oh I do competitor now has to add an unimplemented method and unimplemented methods compare.

215

00:13:35,500  -->  00:13:40,440
And it is comparing the two objects on one off the object will be the element that needs to be added

216

00:13:40,500  -->  00:13:44,700
the new element and the other object will be an element that is already there.

217

00:13:44,820  -->  00:13:45,210
OK.

218

00:13:45,390  -->  00:13:50,560
So let's go ahead and use the same logic.

219

00:13:50,580  -->  00:13:51,680
Use that title.

220

00:13:51,930  -->  00:13:55,620
So you will see object 1.

221

00:13:55,830  -->  00:14:01,070
It needs to be Doncaster to book normally to wrap this here.

222

00:14:01,900  -->  00:14:12,040
And we need to get by in which are done a string and we can use a compare method of that.

223

00:14:12,090  -->  00:14:19,260
So let's do the same thing but it will be.

224

00:14:19,650  -->  00:14:21,890
So we are once again comparing that bitless.

225

00:14:21,930  -->  00:14:26,430
So we are making use of the Compared to them and then we can actually use a compare to my girdled some

226

00:14:27,210  -->  00:14:28,970
of the string class.

227

00:14:29,130  -->  00:14:33,030
So that's sorting criteria and so on.

228

00:14:33,810  -->  00:14:40,780
And when you do that's just common this out here it's actually not needed.

229

00:14:41,490  -->  00:14:46,260
And we need to pass the competitor here.

230

00:14:46,320  -->  00:14:52,260
Unique Retallack researched what logic has to be used for sorting since there is no natural ordering

231

00:14:52,300  -->  00:14:56,030
anymore because we commentor are comparable.

232

00:14:56,110  -->  00:15:01,990
What say I don't know let's go ahead and run this.

233

00:15:02,100  -->  00:15:05,310
And as you can see you're looking fine.

234

00:15:05,310  -->  00:15:12,760
Now if you do this which means that it is implementing compatible.

235

00:15:12,810  -->  00:15:15,630
But we are also passing the competitor.

236

00:15:15,630  -->  00:15:19,250
So in this case it will still use this one.

237

00:15:19,260  -->  00:15:20,900
It will still use that I do competitor.

238

00:15:20,910  -->  00:15:26,610
So the competitor implementation will override the natural ordering.

239

00:15:26,620  -->  00:15:31,890
OK so if you put a print statement here you will be able to see that the computer that is being used

240

00:15:31,900  -->  00:15:32,120
.

241

00:15:32,310  -->  00:15:32,860
OK.

242

00:15:32,860  -->  00:15:39,510
Now one advantage of using competitors is that in this case we are passing this particular competitor

243

00:15:40,020  -->  00:15:46,680
but let's say if you want to also if you also define the author competitor so you can also sort by alter

244

00:15:46,680  -->  00:15:47,080
.

245

00:15:47,280  -->  00:15:52,550
So in which case at runtime you can specify which competitor to use if you want a competitor.

246

00:15:52,570  -->  00:15:57,810
You'll say that I do compare let's say there is a user interface and the user chooses sort by title

247

00:15:57,810  -->  00:15:58,140
.

248

00:15:58,140  -->  00:16:02,130
In that case you will run this you will pass this instance to a competitor.

249

00:16:02,280  -->  00:16:07,950
But if the user selects sort by author then you will pass on to a competitor or if the user selects

250

00:16:08,030  -->  00:16:14,220
sort by publication date then you will write to support a new class for that and your competitor and

251

00:16:14,220  -->  00:16:15,900
they will pass on instance of done.

252

00:16:16,170  -->  00:16:19,750
So this kind of passing off competitors at runtime.

253

00:16:19,800  -->  00:16:23,880
Basically the unpartisan strategy is being Basit at runtime.

254

00:16:23,940  -->  00:16:29,870
So this kind of a strategy is going to this kind of an approach is called US strategy partan.

255

00:16:29,970  -->  00:16:36,510
So that's a design by the end where the strategy the actual algorithm is being passed at runtime.

256

00:16:36,600  -->  00:16:39,600
So in this gives the sorting strategy will be set at runtime.

257

00:16:39,690  -->  00:16:43,760
So that's what I'd want is that you have using the competitor interface.

258

00:16:44,160  -->  00:16:48,890
Now one other thing I want to tell us this is regarding the mission ordering.

259

00:16:49,100  -->  00:16:56,910
So if I call Amandus somebody moiling the competitor and I'm also D-Mo. incompatible.

260

00:16:56,940  -->  00:16:58,880
Now we saw that we have this exception.

261

00:16:58,980  -->  00:17:02,620
Now this exception is generated when we are adding the first element Ritchson.

262

00:17:03,000  -->  00:17:09,120
So that's because the trees are actually ensures that even the first element that is being added has

263

00:17:09,120  -->  00:17:11,270
to be a subtype of compatible.

264

00:17:11,400  -->  00:17:15,450
And in this case when it was trying because we are we have commented this out.

265

00:17:15,630  -->  00:17:21,690
So it was trying to see if it can be Kostikov compatible it could not cost and so it generated that

266

00:17:21,750  -->  00:17:23,810
last gasp exception.

267

00:17:23,970  -->  00:17:24,680
So that's about it.

268

00:17:24,680  -->  00:17:25,640
Let me stop here.

269

00:17:25,800  -->  00:17:30,900
So we looked at what competitor uncomfortable and in the next lesson we will also look at the other

270

00:17:30,900  -->  00:17:36,890
methods in the unnavigable set interface which And there are few other matters.

271

00:17:36,930  -->  00:17:39,600
So they're in the next lesson we will try them out.

272

00:17:39,610  -->  00:17:41,040
They are not very commonly used.

273

00:17:41,070  -->  00:17:43,260
So let's just keep them as a separate lesson.

274

00:17:43,470  -->  00:17:44,100
OK.

275

00:17:44,130  -->  00:17:44,820
So that's about it.

276

00:17:44,820  -->  00:17:50,160
So just keep in mind that we have embeddable on competitor compatibilism a total ordering and it has

277

00:17:50,160  -->  00:17:52,910
only one metor compared to one competitor.

278

00:17:52,920  -->  00:17:57,820
How does that compare to mentor underdose competitors from job to deal package.

279

00:17:57,960  -->  00:17:59,220
Okay so that's about it.

280

00:17:59,220  -->  00:17:59,710
Thank you.

281

00:17:59,710  -->  00:18:03,420
And the court is available in the resource section happy coding.
