Сортировка ArrayList Andoid Studio

Тривиальная задача — есть ArrayList элементами которого являются экземпляры собственного класса (в моем случае класс называется one_word). Класс представляет собой составной элемент из строки String (хранит само слово) и числовое значение int (хранит частоту повторений слова). Нужно отсортировать список по алфавиту по строке String.

Есть не один вариант выполнить сортировку….

Но вот что интересно: казалось бы, простой метод сортировки ArrayList.

Взял список и отсортировал, например вот так:

game_words.sort(new Comparator() { 
@Override
public int compare(one_word one_word, one_word t1) { 
 return one_word.getWord_for_explain().compareToIgnoreCase(t1.getWord_for_explain()); 
 } 
 }); 
Но! теперь Andorid Studio просит дописать строку:
@RequiresApi(api = Build.VERSION_CODES.N) 
Можно поначалу не придать этому значения, пока не посыпятся гневные отзывы, о том что приложение не работает. Выяснится, что при API меньше 24 (API<24) действительно ничего не работает. Потому что именно тогда появился данный метод по отношению к ArrayList. Решается проблема почти моментально изменением кода:
Collections.sort(game_words, new Comparator() { 
@Override 
public int compare(one_word one_word, one_word t1) { 

return one_word.getWord_for_explain().compareToIgnoreCase(t1.getWord_for_explain()); 


}); 
Как видно, метод теперь прекрасно работает без каких-либо особых требований. А всего то нужно было применить к классу Collections, и в скобках указать имя ArrayList.

You may also like...

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *