comparator for String

import java.util.Comparator;
import java.util.PriorityQueue;


public class solution2 {

    /**
     * @param args
     */
    @SuppressWarnings("unchecked")
    PriorityQueue<String> queue = new PriorityQueue<String>(2,new comparatorString());
    
    
    
    
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        solution2 s = new solution2();
        s.queue.add("cab");
        s.queue.add("abc");
        s.queue.add("s");
        s.queue.add("A");
        s.queue.add("a");
        s.queue.add("Bdsf");
        
        for(String str : s.queue)
            System.out.println(str);
                
    }

}
    class comparatorString implements Comparator<String>{
    
    @Override
    public int compare(String o1, String o2) {
        // TODO Auto-generated method stub
        //if (o1 instanceof String);
        return o1.compareTo(o2);
        
    }
    
    /*
     * compareTo()的返回值是整型,它是先比较对应字符的大小(ASCII码顺序),如果第一个字符和参数的第一个字符不等,结束比较,返回他们之间的 

差值,如果第一个字符和参数的第一个字符相等,则以第二个字符和参数的第二个字符做比较,以此类推,直至比较的字符或被比较的字符有一方 

全比较完,这时就比较字符的长度. 

例: 
String s1 = "abc"; 
String s2 = "abcd"; 
String s3 = "abcdfg"; 
String s4 = "1bcdfg"; 
String s5 = "cdfg"; 
System.out.println( s1.compareTo(s2) ); // -1 (前面相等,s1长度小1) 
System.out.println( s1.compareTo(s3) ); // -3 (前面相等,s1长度小3) 
System.out.println( s1.compareTo(s4) ); // 48 ("a"的ASCII码是97,"1"的的ASCII码是49,所以返回48) 
System.out.println( s1.compareTo(s5) ); // -2 ("a"的ASCII码是97,"c"的ASCII码是99,所以返回-2)
     * 
     * 
     * */
    
}

 

posted on 2014-02-16 11:49  brave_bo  阅读(514)  评论(0)    收藏  举报

导航