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+" ";
    }

    
}