10 месяцев назад
История
README.md
Домашнее задание к занятию “11 Коллекции и лямбды в Kotlin”
Цель задачи – изучить коллекции Kotlin.
Задача №1. Много заметок
Дополните результат из предыдущего задания таким образом, чтобы у заметки было обязательное свойство id типа Long NoteService теперь должен реализовывать интерфейс:
interface NoteService {
/**
* Если id == 0, создаёт новую, если id равен существующей заметке, сохраняет
* В случае, если указан некорректный id, выбрасывает IllegalArgumentException
* При обновлении updatedAt должно заполняться текущим временем
* @throws IllegalArgumentException
*/
fun save(note: Note): Note
/**
* Возвращает копию внутреннего списка
*/
fun getAll(): List<Note>
/**
* Возвращает список текстов без повторов
*/
fun getAllUniqueTexts(): List<String>
/**
* Возвращает несколько заметок старше указанного id
* @param count – сколько заметок отсчитать
* @param id - относительно какого элемента отсчитывать
*/
fun getBefore(count: Int, id: Long): List<Note>
/**
* Возвращает несколько заметок новее указанного id
* @param count – сколько заметок отсчитать
* @param id - относительно какого элемента отсчитывать
*/
fun getAfter(count: Int, id: Long)
}
Если ваш сервис называется NoteService, то сначала переименуйте его в NoteServiceImpl, а затем добавьте интерфейс NoteService.
Обратите внимание на пагинацию. Такой способ больше подходит для соцсетей и подобных приложений, где списки могут расти и часто обновляться.
Возможно вам в решении поможет экстеншен-функция dropWhile и/или dropLastWhile, но это не точно.
Обязательно протестируете ваше решение. Заполните сервис тестовыми данными и вызовите getBefore, getAfter.
Конвейеры
0 успешных
0 с ошибкой