import ;
import ;
public class Demo3 {
public static void main(String[] args)
{
("Use natural sorting:");
TreeMap<IdNumber2, String> treeMap=new TreeMap<IdNumber2, String>();
(new IdNumber2(1000), "Wang Nima");
(new IdNumber2(1001), "Wannima");
(new IdNumber2(1002), "Blue Nima");
(new IdNumber2(1003), "Vonnyma");
(new IdNumber2(1004), "Qin Nima");
("treeMap="+treeMap);
("Use custom sorting: (sorted from small to large)");
//Use nail sorting to indicate the comparator
TreeMap<IdNumber2, String> treeMap2=
new TreeMap<IdNumber2,String>(new MyComparatorBigToSmall());
(new IdNumber2(1000), "Wang Nima");
(new IdNumber2(1001), "Wannima");
(new IdNumber2(1002), "Blue Nima");
(new IdNumber2(1003), "Vonnyma");
(new IdNumber2(1004), "Qin Nima");
("treeMap2="+treeMap2);
("Use custom sorting: (Sorting from large to small)");
TreeMap<IdNumber2, String> treeMap3=
new TreeMap<IdNumber2,String>(new MyComparatorSmallToBig());
(new IdNumber2(1000), "Wang Nima");
(new IdNumber2(1001), "Wannima");
(new IdNumber2(1002), "Blue Nima");
(new IdNumber2(1003), "Vonnyma");
(new IdNumber2(1004), "Qin Nima");
("treeMap2="+treeMap3);
}
}
//Custom Comparator: Implement the comparator interface
class MyComparatorBigToSmall implements Comparator<IdNumber2> //Use generics
{
@Override
public int compare(IdNumber2 o1, IdNumber2 o2) {
// TODO Auto-generated method stub
return ()-();//Sorting from small to large
}
}
class MyComparatorSmallToBig implements Comparator<IdNumber2>
{
@Override
public int compare(IdNumber2 o1, IdNumber2 o2) {
// TODO Auto-generated method stub
return ()-();//Sorting from small to large
}
}
//Z implements the Comparable interface as a key class
class IdNumber2 implements Comparable<IdNumber2>
{
//Member Attributes
private int IdNumber;
public int getIdNumber()
{
return IdNumber;
}
//Constructor
public IdNumber2() {
// TODO Auto-generated constructor stub
}
//Constructor
public IdNumber2(int IdNumber)
{
=IdNumber;
}
//Rewrite the toString() method
@Override
public String toString() {
// TODO Auto-generated method stub
return "["++"]";
}
//Rewrite the equals() method
@Override
public boolean equals(Object obj)
{
if(obj==this)//Compare yourself with yourself
return true;//That is the same one is equal
//The incoming reference is not empty, and the two types are the same
if(obj!=null&&()==())
{
IdNumber2 idNumber2=(IdNumber2) obj;//Type conversion
return ==;
//If the two numbers are the same, then they are considered equal
}
return false;
}
//Rewrite the hashCode() method
@Override
public int hashCode() {
// TODO Auto-generated method stub
return *100;
}
//Rewrite the compareTo() method to achieve natural sorting
@Override
public int compareTo(IdNumber2 o)
{
// TODO Auto-generated method stub
//return ;//Sorting from small to large:
return ;//Sorting from large to small
}
}