You literally teach and explain everything about sorting with object in 15 mins that my professor wasn't able to do in 2 hours. Good job and keep doing these things because it's really helpful and valuable to a fresher like me
Hi Navin. as usual great video.. but most importantly comparator and comparable have always been things ive never understood.... until now.. the way you have explained is amazing and always wait for your amazing videos. and by the way the growth of your presentation and teaching skills have become better and better and we love it. Thanks a lot and will be waiting for lots more videos.
@telusko I loved your teaching style Naveen Reddy Sir, It is not necessary for a Comparator to return -1 or 1 it can actually return any negative or positive integer only the sign matters. even 0 is allowed i guess. this caused me confusion but you should have also mentioned it at the end for more nerdy people. package java4AdvancedCollections; import java.util.TreeSet; public class TreeSetExample { public static void main(String[] args) { // Creating a TreeSet of integers (natural ordering) TreeSet treeSet = new TreeSet(); // Adding elements to the TreeSet treeSet.add(10); treeSet.add(5); treeSet.add(20); treeSet.add(15); // Printing the TreeSet (elements will be in ascending order) System.out.println("TreeSet: " + treeSet); // Creating a TreeSet with a custom comparator for descending order TreeSet descendingTreeSet = new TreeSet((a, b) -> { if (a > b) { return -2; } else { return 2; } }); // Adding elements to the descending TreeSet descendingTreeSet.add(10); descendingTreeSet.add(5); descendingTreeSet.add(20); descendingTreeSet.add(15); // Printing the descending TreeSet (elements will be in descending order) System.out.println("Descending TreeSet: " + descendingTreeSet); // Performing operations specific to NavigableSet interface System.out.println("Ceiling of 12: " + treeSet.ceiling(12)); System.out.println("Floor of 12: " + treeSet.floor(12)); } }
Logic to sort elements based on the length of the string import java.util.Comparator; import java.util.*; class Solution { public static void main(String[] args) {
Comparator com = new Comparator(){ public int compare(String a , String b){ if(a.length() > b.length()) return 1; else return -1; } }; List nums = new ArrayList(); nums.add("Python"); nums.add("C++"); nums.add("Java"); nums.add("Django"); nums.add("SpringBoot"); nums.add("Spring"); Collections.sort(nums , com); System.out.println(nums); } }
@@codework2434 it's new update from official java it's unnecessary to mention on creating object of Comparator But in case of anonymous class we should! do you understand?
wonderful video, it helps me to understand the concept very clear . Example you are providing is just awesome sir. keep doing these kind of videos sir. thanks a lot.
Here i have a doubt. Comparable is a functional interface. So we can override onlt compareTo() method and it is fine. But Comparator method is not a functional interface. How can we just override only menthod which is compare() and Java dosen't gives an error?
Sorting the String based on the length: public class PractComparator { public static void main(String[] arg) { Comparator com = new Comparator() { @Override public int compare(String o1, String o2) { return o1.length() - o2.length(); } }; List fruit = new ArrayList(); fruit.add("Banana"); fruit.add("Mandarin"); fruit.add("PineApple"); fruit.add("Apple");
That's because he used a lambda expression. Since Comparator is a Functional Interface (only has one abstract method to implement) you can use this special sintax to return an implementation of that interface. When using Lambda expressions, you only have to define how to implement the method.
@telusko it is not necessary for a Comparator to return -1 or 1 it can actually return any negative or positive integer only the sign matters. {even 0 is allowed i guess}
When i was a student in 2015 then also i used to come and watch java videos here. I now have almost 5 years of experience and when some Java work comes I come here again to refresh my memory. Thank you Navin. It feels like nostalgia sometimes watching your videos
Excellent video. Well explained. Can you add a comment here on how to sort based on more than one field? Say name and age assuming student names are duplicated. thanks
Sorting string by length package Collection; import java.util.*; public class SortStringByLen { public static void main(String[] args) { ArrayList ob = new ArrayList(); ArrayList ob1 = new ArrayList(); Comparator c1 = new Comparator() { public int compare(String i ,String j){ if(i.length()>j.length()){ return 1; } else{ return -1; } } }; Scanner sc = new Scanner(System.in); System.out.println("Enter the names: "); String str; int len; for(int i=0;i
Cannot make a static reference to the non-static field compare some times i am getting this error in quick fix i got add static static Comparator com = new Comparator() { then it solved
Synopsis: If you want to give class the power to compare its object on its own then use Comparable otherwise use Comparator to define logic and pass its object in the Collections.sort() method....
You are explaining saying sort() works using bubblesort in the background, which need not be the case, don't give wrong info. In case of java it uses, duel pivot quick sort sort alogithm. Why you pass in comparator, you are only letting the sort know how to compare the values, not the whole sorting.
You literally teach and explain everything about sorting with object in 15 mins that my professor wasn't able to do in 2 hours. Good job and keep doing these things because it's really helpful and valuable to a fresher like me
same, our teacher here literally sent us to read javadocs =)
So glad you're updating your older videos. Helpful as always! 😁
Navin sir.... Really fond of u..... I sat for 5 hrs to understand it.... Now im crystal clear
can you give some techniques
TASK :
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
class Hello {
public static void main(String a[]) {
Comparator com = new Comparator() {
public int compare(String i, String j)
{
if(i.length() < j.length())
return 1;
else
return -1;
}
};
List names = new ArrayList();
names.add("Navin");
names.add("Navin Reddy");
names.add("Telusko");
names.add("Navin Telusko");
Collections.sort(names, com);
System.out.println(names);
}
}
Correct 👍
Hi Navin. as usual great video.. but most importantly comparator and comparable have always been things ive never understood.... until now.. the way you have explained is amazing and always wait for your amazing videos. and by the way the growth of your presentation and teaching skills have become better and better and we love it. Thanks a lot and will be waiting for lots more videos.
Good video. Thanks for leaving in the errors so we can learn.
The last 2 mins are very insightful!! 😍😍
best java instructor i’ve ever come across
10/10 video and demonstration, absolutely love the dynamic, following along and coding beside you helps to learn efficiently
@telusko I loved your teaching style Naveen Reddy Sir,
It is not necessary for a Comparator to return -1 or 1 it can actually return any negative or positive integer only the sign matters. even 0 is allowed i guess.
this caused me confusion but you should have also mentioned it at the end for more nerdy people.
package java4AdvancedCollections;
import java.util.TreeSet;
public class TreeSetExample {
public static void main(String[] args) {
// Creating a TreeSet of integers (natural ordering)
TreeSet treeSet = new TreeSet();
// Adding elements to the TreeSet
treeSet.add(10);
treeSet.add(5);
treeSet.add(20);
treeSet.add(15);
// Printing the TreeSet (elements will be in ascending order)
System.out.println("TreeSet: " + treeSet);
// Creating a TreeSet with a custom comparator for descending order
TreeSet descendingTreeSet = new TreeSet((a, b) -> {
if (a > b) {
return -2;
} else {
return 2;
}
});
// Adding elements to the descending TreeSet
descendingTreeSet.add(10);
descendingTreeSet.add(5);
descendingTreeSet.add(20);
descendingTreeSet.add(15);
// Printing the descending TreeSet (elements will be in descending order)
System.out.println("Descending TreeSet: " + descendingTreeSet);
// Performing operations specific to NavigableSet interface
System.out.println("Ceiling of 12: " + treeSet.ceiling(12));
System.out.println("Floor of 12: " + treeSet.floor(12));
}
}
Thank you Mr.
You made it very simple and easy!
you know the person teaching you about java is legit when he is bald hehe. subscribed :)
My teacher in University who's teaching us java is also bald🤣 and he even looks so much like this youtuber!!
I must say this was one of the best videos explaining comparator and comparable concept.
Logic to sort elements based on the length of the string
import java.util.Comparator;
import java.util.*;
class Solution {
public static void main(String[] args) {
Comparator com = new Comparator(){
public int compare(String a , String b){
if(a.length() > b.length())
return 1;
else
return -1;
}
};
List nums = new ArrayList();
nums.add("Python");
nums.add("C++");
nums.add("Java");
nums.add("Django");
nums.add("SpringBoot");
nums.add("Spring");
Collections.sort(nums , com);
System.out.println(nums);
}
}
Great, got my concepts cleared . Thank you , sir!!!👍👍👍👍👍👍👍👍👍👍👍👍👍👍
I have been struggling to understand this for long and this video is what it was required to get it cleared. Thank you @NavinSir #Telusko
Heck of a video! I have been trying to understand the differences for a long time, finally you cleared all of my doubts.
Excellent ❤❤ , feeling enjoyed the functional usage at the end
comparable and so no?1:00
Great video sir..telling in depth concepts simply for understanding..thanks a lot
Understood today the real concept behind comparator and comparable
Love your videos, learn new thing every time.
7:28
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class first {
public static void main(String[] args) throws IOException
{
Comparator comp = new Comparator() {
public int compare(String s, String t) {
if (s.length() < t.length())
return 1;
else
return -1;
// throw new UnsupportedOperationException("Unimplemented method 'compare'");
}
};
List col=new ArrayList();
col.add("aaaaa");
col.add("aa");
col.add("aaaa");
col.add("a");
Collections.sort(col, comp);
System.out.println(col);
}
}
Reddy ji! No words Thanks for your explanation
Had to watch an entire tutorial just because I thought I don't undertand java. After this video. i'm like OH MY GOD !!!!!!!!!
Awesome guruji shukriya
Just discovered this video and the explanation is awesome, it almost blew my mind
7:20
import java.util.List;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
public class compa {
public static void main(String[] args) {
Comparator y = new Comparator() {
public int compare(String i, String j) {
if (i.length() > j.length())
return 1;
else
return -1;
}
};
List names = new ArrayList();
names.add("Gnani");
names.add("Gnan");
names.add("Chapathi");
names.add("Gnanesh");
names.add("navin mava");
Collections.sort(names, y);
System.out.println(names);
}
}
Line no: 8 --> You have to specify Comparator on right side as well, its compulsory 3:03 . But I dono why it works without it.
@@codework2434 it's new update from official java it's unnecessary to mention on creating object of Comparator But in case of anonymous class we should!
do you understand?
@@sharabugnanesh3098 So, in your code above you left to mention the type, right ?
@@codework2434 yes I need to mention at left
@@sharabugnanesh3098 Thanks about the "official java update"
thanks for your explanation, sir. It helps me to understand comparable and comparator.
Hats off to you, sir! 🙌
wonderful video, it helps me to understand the concept very clear . Example you are providing is just awesome sir. keep doing these kind of videos sir. thanks a lot.
amazing video, gave me the summary i needed!
Here i have a doubt. Comparable is a functional interface. So we can override onlt compareTo() method and it is fine. But Comparator method is not a functional interface. How can we just override only menthod which is compare() and Java dosen't gives an error?
Now, I understood those concepts. Thanks
Sorting the String based on the length:
public class PractComparator {
public static void main(String[] arg) {
Comparator com = new Comparator() {
@Override
public int compare(String o1, String o2) {
return o1.length() - o2.length();
}
};
List fruit = new ArrayList();
fruit.add("Banana");
fruit.add("Mandarin");
fruit.add("PineApple");
fruit.add("Apple");
Collections.sort(fruit,com);
System.out.println(fruit);
}
}
Sir what is meaning of 1 and -1 . I didn't understand that
finally understood thanks!
thats a great video
covered all that i needed thank you
why we create List nums = new ArrayList
and not ArrayList nums = new ArrayList
I am confused please help
Great Explanation. Thanks
7:26
ArrayList arrS = new ArrayList();
arrS.add("ABC");
arrS.add("ABCDE");
arrS.add("A");
arrS.add("XYZABCDEF");
arrS.add("AS");
Comparator comS = new Comparator() {
public int compare(String i, String j){
if((i.length())>(j.length()))
return 1;
else
return -1;
}
};
Collections.sort(arrS,comS);
System.out.println(arrS);
How you intantiated the comparator because comparator is an interface and we cannot instantiate interface?
That's because he used a lambda expression. Since Comparator is a Functional Interface (only has one abstract method to implement) you can use this special sintax to return an implementation of that interface. When using Lambda expressions, you only have to define how to implement the method.
@telusko it is not necessary for a Comparator to return -1 or 1 it can actually return any negative or positive integer only the sign matters.
{even 0 is allowed i guess}
Thanks for the awesome explanation sir🎉
When i was a student in 2015 then also i used to come and watch java videos here. I now have almost 5 years of experience and when some Java work comes I come here again to refresh my memory. Thank you Navin. It feels like nostalgia sometimes watching your videos
Excellent video. Well explained. Can you add a comment here on how to sort based on more than one field? Say name and age assuming student names are duplicated. thanks
Nice explanation. which IDE is that ? - got it. Visual Studio
i love you man. I finally got it!
Great explanation, thank you so much!
Awesome Explanation!
This is great explanation.
Very helpful, thank you.
Thank you. very clear and helpful!
your videos are awesome man
Thank you so much for this video ❤
Do we always need to use Array List for comparator or can it be used for array also??
I think no
We can use any collection
Correct me if I am wrong
Nice explaination
This video is tooo goood. THANK you
Great video, thanks !
Nuvu king mava🤗
Thank you for valuable video ❤️
Great explanation
Sorting string by length
package Collection;
import java.util.*;
public class SortStringByLen {
public static void main(String[] args) {
ArrayList ob = new ArrayList();
ArrayList ob1 = new ArrayList();
Comparator c1 = new Comparator() {
public int compare(String i ,String j){
if(i.length()>j.length()){
return 1;
}
else{
return -1;
}
}
};
Scanner sc = new Scanner(System.in);
System.out.println("Enter the names: ");
String str;
int len;
for(int i=0;i
Navin Reddy never disappoints
Cannot make a static reference to the non-static field compare
some times i am getting this error
in quick fix i got add static
static Comparator com = new Comparator() {
then it solved
what if i try to implement Comparator on Student class, Navin reddy please explain this scenario
sir can u upload generics concept
can any body tell me why return 1 and -1 is used .
Yes please..
thank u sir very helpful . all clear now . Okay I have
Thank you so much for this.
Thanx jhonny
great video sir
Synopsis:
If you want to give class the power to compare its object on its own then use Comparable otherwise use Comparator to define logic and pass its object in the Collections.sort() method....
1 for swap &
-1 for no swap
I have a doubt .... how many times this swapping happens??
Can anyone help me waht is (a:) this label oprator why we use it
Comparator is an interface so how object will created??
we are implementing the logic with lambda expression
I have a quetion, why by returning 1 , the swapping is happenning?It doesn't make sense to me,plz explain
Hello! Returning 1 means that a is greater than b. Returning -1 means b is greater than a. Returning 0 means a equals b. I hope this helps!
Radha Radha, Thanks Sir Very Helpfull
something meaningful to me
How did you replace nums to studs?
its just find and replace
Very good videoes!
Sir the collection is not a class it's an Interface
Collections is a class but Collection is an interface 😊
Awesome video !!!
you are the best
Sir please try to make videos with white screen
thanks
Last two minutes he said why not let's flex my knowledge
You are explaining saying sort() works using bubblesort in the background, which need not be the case, don't give wrong info. In case of java it uses, duel pivot quick sort sort alogithm. Why you pass in comparator, you are only letting the sort know how to compare the values, not the whole sorting.
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
public class ChallengLQREA {
public static void main(String[] args) {
Comparator cmp = new Comparator() {
public int compare(String o1, String o2) {
if(o1.length() < o2.length())
return -1;
else
return 1 ;
}
};
ArrayList SortStrings = new ArrayList();
SortStrings.add("Amine");
SortStrings.add("Saberrr");
SortStrings.add("Aichaa");
SortStrings.add("Bahtiiii");
Collections.sort(SortStrings,cmp );
System.out.println(SortStrings);
}
Thankyou sir
Thankyou Reddy Ji lots of love.
14:03
what is the IDE he is using?
Vs code
but IntelliJ IDEA works better
awesome ❤
thanks
You are awesome 👏👏👏
Ohh bhupendra jogi 😂😂😂
Ternary Operator ❌ Tatari Operator ✔
package basics;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class demo {
public static void main(String[] args) {
Comparator com = new Comparator()
{
public int compare(String i, String j) {
if(i.length()