phones.stream()
.sorted((a,b) -> b.length()-a.length() == 0? a.compareTo(b) : b.length()-a.length())
.forEach(System.out::println);
Извините - нет. Резервные копии являются единственной опцией, о которой я знаю.
В будущем рассмотрите никогда Запросы на удаление издания, особенно от доступных для пользователя форм (позвольте только администратору DB сделать это, если любой) - просто включают поле в Ваши таблицы, которое отмечает запись как неактивную и затем фактор это в к Вашим запросам в операторе Where.
Могло бы быть возможно войти и видеть данные через Hex-редактор. Единственная информация, которую я мог найти, сказала, что метаданные закончились так, записи не собирались возвращаться, но сами данные могли бы все еще быть там. Это имеет много, чтобы сделать с тем, насколько важный данные, я подозреваю, что для Вас не достаточно важно откопать Hex-редактор.
Ни за что. Без рабочего резервного копирования Вы не сможете восстановить это.
К сожалению, я не знаю о пути, также. Однако, пока Вы не делаете ВАКУУМ на файле базы данных SQLite, удаленные данные обычно технически не удаляются. Возможно, Вы смогли все еще восстанавливать некоторые данные с помощью своего рода Hex-редактора на файле.
Данные не всегда удаляются из файла сразу. Если их много и вы в отчаянии, вы можете использовать команду UNIX strings
для файла. Это может помочь вам восстановить различные фрагменты и фрагменты данных, удобочитаемых человеком, но это будет сложный и неточный процесс.