Символы за пределами Z в алфавитном порядке

Хорошо, это всего лишь быстрый вопрос, так как я не могу найти ответ сам. В списках строк, которые расположены в алфавитном порядке, используя Collections.sort а также compareTo функции, какой последний доступный символ (кроме "ZZZ")?

Я хотел бы знать символы за пределами "ZZZ" в compareToПорядок, из любопытства.

2 ответа

Решение

Цитата Хольгера:

Вы сравниваете строки, а не символы. Последняя строка, то есть строка, для которой не существует "большей" строки, является строкой, состоящей из 2147483647 повторений символа "\uFFFF". Вы не хотите использовать это...

Я считаю это правильным ответом на мой вопрос.


PS: для тех, кто интересуется, это был код в оригинальном вопросе:

Причина, по которой я задал вопрос:

Collections.sort(myObjectList, new Comparator<MyObject>(){
    @Override
    public int compare(MyObject o1, MyObject o2){
        String name1 = o1.getName();
        String name2 = o2.getName();

        if(name1 == null)
            name1 = "ZZZ"; // <- Last String in compareTo's order
        if(name2 == null)
            name2 = "ZZZ"; // <- Last String in compareTo's order

        return name1.compareTo(name2);
    }
});

Вместо этого изменилось следующее, чтобы решить мою проблему:

Collections.sort(myObjectList, new Comparator<MyObject>(){
    @Override
    public int compare(MyObject o1, MyObject o2){
        String name1 = o1.getName();
        String name2 = o2.getName();

        if(name1 == null && name2 == null)
            return 0;
        if(name1 == null) // && name2 != null
            return 10;
        if(name2 == null) // && name1 != null
            return -10;
        else // name1 != null && name2 != null
            return name1.compareTo(name2);
    }
});

В Unicode последний символ в алфавите z (В нижнем регистре). Первый символ, который следует {

Другие вопросы по тегам