首页 > 其他 > 详细

comparator for String

时间:2014-02-16 21:52:19      阅读:386      评论:0      收藏:0      [点我收藏+]
bubuko.com,布布扣
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)
     * 
     * 
     * */
    
}
bubuko.com,布布扣

comparator for String

原文:http://www.cnblogs.com/leetcode/p/3551221.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!