Java对字符串排序,要求先按长度排序,再按首字母排序,如果首字母相同比第二个字母,如果第二个字母相同就根据输入的顺序输出,请问最后这个条件怎么写

Java对字符串排序,要求先按长度排序,再按首字母排序,如果首字母相同比第二个字母,如果第二个字母相同就根据输入的顺序输出,请问最后这个条件怎么写。
目前写到了按长度排序,再按首字母排序,不知道最后那个第二个字母相同的条件怎么写

int strcmp(const char *str1,const char *str2)
{
    /*不可用while(*str1++==*str2++)来比较,当不相等时仍会执行一次++,
    return返回的比较值实际上是下一个字符。应将++放到循环体中进行。*/
    while(*str1 == *str2)
    {
                assert((str1 != NULL) && (str2 != NULL));                
        if(*str1 == '\0')
            return 0;        
        str1++;
        str2++;
    }
    return *str1 - *str2;
}

看一个c++的字符比较。


 if(e1.length() != e2.length()){
                return e2.length() - e1.length();
            }
            if(e1.charAt(0) != e2.charAt(0)){
                return e1.charAt(0) - e2.charAt(0);
            }
            if(e1.charAt(1) != e2.charAt(1)){
                return e1.charAt(1) - e2.charAt(1);
            }else{
                return 0;
            }