Using comparable to set the order of Objects in TreeSet
* Here we are creating a class Contact and each object of this class will represent contact of a person.
* In TreesetDemo1 class, we will create multiple objects of this class with different values of variables.
* After creating objects, we will add them to TreeSet and test their order.
*
* Here we are implementing Com parable interface to the class that will provide object to be placed into ordered way into TreeSet.
* It has only single method compareTo(OtherObject obj) that will return int value.
* The Object that implements Comparable interface properly, is placed into ordered way automatically.
package collection.demos;
import java.util.TreeSet;
class Contact implements Comparable<Contact>{
String name;
String email;
long phone;
public Contact(String name, String email, long phone) {
this.name = name;
this.email = email;
this.phone = phone;
}
public String toString() {
return name+"\t"+email+"\t"+phone;
}
public int compareTo(Contact o) {
int diff=name.compareTo(o.name);
return diff;
}
}
public class TreeSetDemo2 {
public static void main(String[] args) {
TreeSet<Contact> contacts=new TreeSet<Contact>();
Contact c1=new Contact("zyan","zyan@gmail.com",123467);
Contact c2=new Contact("corb","cord@gmail.com",534544);
Contact c3=new Contact("gogle","gogle@gmail.com",33444);
Contact c4=new Contact("sraf","straf@gmail.com",255346);
contacts.add(c1);
contacts.add(c2);
contacts.add(c3);
contacts.add(c4);
for (Contact c : contacts) {
System.out.println(c);
}
}
}
/*
OUTPUT
corb cord@gmail.com 534544
gogle gogle@gmail.com 33444
sraf straf@gmail.com 255346
zyan zyan@gmail.com 123467
*/
* Here we are creating a class Contact and each object of this class will represent contact of a person.
* In TreesetDemo1 class, we will create multiple objects of this class with different values of variables.
* After creating objects, we will add them to TreeSet and test their order.
*
* Here we are implementing Com parable interface to the class that will provide object to be placed into ordered way into TreeSet.
* It has only single method compareTo(OtherObject obj) that will return int value.
* The Object that implements Comparable interface properly, is placed into ordered way automatically.
package collection.demos;
import java.util.TreeSet;
class Contact implements Comparable<Contact>{
String name;
String email;
long phone;
public Contact(String name, String email, long phone) {
this.name = name;
this.email = email;
this.phone = phone;
}
public String toString() {
return name+"\t"+email+"\t"+phone;
}
public int compareTo(Contact o) {
int diff=name.compareTo(o.name);
return diff;
}
}
public class TreeSetDemo2 {
public static void main(String[] args) {
TreeSet<Contact> contacts=new TreeSet<Contact>();
Contact c1=new Contact("zyan","zyan@gmail.com",123467);
Contact c2=new Contact("corb","cord@gmail.com",534544);
Contact c3=new Contact("gogle","gogle@gmail.com",33444);
Contact c4=new Contact("sraf","straf@gmail.com",255346);
contacts.add(c1);
contacts.add(c2);
contacts.add(c3);
contacts.add(c4);
for (Contact c : contacts) {
System.out.println(c);
}
}
}
/*
OUTPUT
corb cord@gmail.com 534544
gogle gogle@gmail.com 33444
sraf straf@gmail.com 255346
zyan zyan@gmail.com 123467
*/
Comments