Итак, что я спрашиваю, как я могу сортировать фильмы, музыку или книги в текстовом файле?
По существу, вы этого не сделаете. Вы загружаете значения в память, сортируете их и сохраняете обратно в файл.
List<String> values = new ArrayList<String>(25);
values.add("Movie Title: The Imitation Game Date & Time: 01/15/2015 08:52:39");
values.add("Music Title: Fly For Your Life Artist: Gunship Date & Time: 01/15/2015 08:52:51)");
values.add("Book Title: Alan Turing: The Enigma Date & Time: 01/15/2015 08:53:05M");
values.add("Music Title: Adagio For Tron Artist: Daft Punk Date & Time: 01/15/2015 08:54:06");
values.add("Music Title: Bad Wings Artist: The Glitch Mob Date & Time: 01/15/2015 08:54:13");
values.add("Movie Title: Rear Window Date & Time: 01/15/2015 08:54:28");
Collections.sort(values, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
String t1 = o1.substring(0, o1.indexOf(" ")).trim();
String t2 = o2.substring(0, o2.indexOf(" ")).trim();
return t1.compareTo(t2);
}
});
for (String value : values) {
System.out.println(value);
}
Какие выходы ...
Book Title: Alan Turing: The Enigma Date & Time: 01/15/2015 08:53:05M
Movie Title: The Imitation Game Date & Time: 01/15/2015 08:52:39
Movie Title: Rear Window Date & Time: 01/15/2015 08:54:28
Music Title: Fly For Your Life Artist: Gunship Date & Time: 01/15/2015 08:52:51)
Music Title: Adagio For Tron Artist: Daft Punk Date & Time: 01/15/2015 08:54:06
Music Title: Bad Wings Artist: The Glitch Mob Date & Time: 01/15/2015 08:54:13
Это просто использует «естественный» порядок String
с для сортировки элементов по, если вы хотите что-то более сложным, вы должны были бы написать правила для этого в compare
способе Comparator
посмотрите на Collections
, искать sort
методы и Comparator
для получения более подробной информации
Вы могли бы ...
Держите каждого типа в пределах его собственной List
и сохранять их последовательно или в там собственный файл ...
Вы могли бы ...
Используйте Map
из какой-то, чтобы как предметы сгруппированы вместе ...
Map<String, List<String>> mapItems = new HashMap<>();
map.put("Music", new ArrayList<String>(25));
map.get("Music").add("The Imitation Game Date & Time: 01/15/2015 08:52:39");
//...
Посмотрите на Trail: Collections для получения более подробной информации.
Вы могли бы ...
стиснуть зубы и попробовать свои силы в использовании базы данных некоторого вида, существует ряд простых, одного пользователя, базы данных доступны, H2, например, который является чистой Java база данных. Посмотрите на JDBC Database Access для получения более подробной информации ...
Независимо от того, я хотел бы предложить вам создать базовый класс или интерфейс, которые поддерживают основную информацию (название и временную метку от внешнего вида), а затем создают классы специальности, например Music
/Book
/Movie
, который простирается от него. Это облегчит управление в долгосрочной перспективе, поскольку информация поддерживается в рамках концепции собственного типа контейнера (и позволяет специализироваться на каждом типе)
У меня есть опыт с этим, ничего профессионального или обширного. Было бы проще просто сохранить их для разделения файлов? – Kalkrin
Начать с [Trail: Collections] (http://docs.oracle.com/javase/tutorial/collections/) и ['Collections'] (http://docs.oracle.com/javase/7/docs/api /java/util/Collections.html), найдите методы 'sort' и [' Comparator'] (http://docs.oracle.com/javase/7/docs/api/java/util/Comparator.html) – MadProgrammer