Сортировка в GWT на основе строки - PullRequest
4 голосов
/ 27 января 2010

Мне нужно отсортировать список на основе MyDto.name в коде GWT на стороне клиента. В настоящее время я пытаюсь сделать это ...

Collections.sort(_myDtos, new Comparator<MyDto>() {

        @Override
        public int compare(MyDto o1, MyDto o2) {
        return o1.getName().compareTo(o2.getName());
        }
});

К сожалению, сортировка не та, которую я ожидал, так как все в верхнем регистре перед строчными. Например, ESP предшествует aESP.

Ответы [ 3 ]

12 голосов
/ 27 января 2010

Это плохой парень, которого вы хотите: String.CASE_INSENSITIVE_ORDER

2 голосов
/ 27 января 2010

Это потому, что заглавные буквы идут перед строчными. Похоже, вы хотите сравнение без учета регистра как таковое:

Collections.sort(_myDtos, new Comparator<MyDto>() {

        @Override
        public int compare(MyDto o1, MyDto o2) {
        return o1.getName().toLower().compareTo(o2.getName().toLower());
        }
});

toLower () ваш друг.

1 голос
/ 10 июня 2015

Я обычно иду на это:

@Override
public int compare(MyDto o1, MyDto o2) {
    return o1.getName().compareToIgnoreCase(o2.getName());
}

Потому что мне кажется, что любые другие манипуляции со строками, которые вы делаете в противном случае (toLower () или toUpper ()), окажутся менее эффективными. Таким образом, по крайней мере, вы не создаете две новые строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...