import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class CompareClassTest
{

/** *//**
* @param args
*/
public static void main(String[] args)
{
List<CompObj> list = new ArrayList<CompObj>();
int[] nums=
{8,2,9,3,5,10,16,2};
for(int i:nums)
{
list.add(new CompObj(i));
}
//Collections.sort(list);//調用類默認的比較方法
Collections.sort(list, new CompObjMaxMin());//調用自定義的比較器
for(CompObj c:list)
{
System.out.print(c);
}

}


}
//自定義的比較器
class CompObjMaxMin implements Comparator
{
@Override
public int compare(Object o1, Object o2)
{
CompObj c1 = (CompObj)o1;
CompObj c2 = (CompObj)o2;
if(c1.num>c2.num)
{
return -1;
}else if(c1.num<c2.num)
{
return 1;
}
return 0;
}
}
//自定義的類,帶默認比較方法
class CompObj implements Comparable
{
int num;

public CompObj(int num)
{
super();
this.num = num;
}
@Override
public int compareTo(Object o)
{
if(o instanceof CompObj)
{
CompObj co = (CompObj)o;
if(this.num>co.num)
{
return 1;
}
else if (this.num<co.num)
{
return -1;
}
}
return 0;
}
@Override
public String toString()
{
return num+" ";
}
}

