Ни один из ваших Collections._____()
вызовов не напечатает ничего.Они просто оперируют базовой коллекцией (listStrings
).Итак, вот что вы ожидаете получить после каждого шага:
//listStrings
Collections.sort(listStrings);
//listStrings sorted alphabetically, case sensitive
Collections.sort(listStrings, String.CASE_INSENSITIVE_ORDER);
//listStrings sorted alphabetically, case insensitive
Collections.sort(listStrings, Collections.reverseOrder());
//listStrings sorted alphabetically in reverse order, case insensitive
Collections.sort(listStrings, String.CASE_INSENSITIVE_ORDER);
//listStrings sorted alphabetically, case insensitive
Collections.reverse(listStrings);
//listStrings sorted alphabetically in reverse order, case insensitive
Наконец, после внесения всех этих изменений в listStrings
вы пытаетесь распечатать коллекцию.Проблема, с которой вы здесь сталкиваетесь, заключается в том, что вы на самом деле не очищаете выходной поток, который, скорее всего, буферизуется.Итак, ничего не будет напечатано.Я переписал ваш код, чтобы иметь точно такой же эффект на listStrings
, и напечатал вывод, например, так:
public static void doIt(BufferedReader r, PrintWriter w) throws IOException
{
List<String> listStrings = new ArrayList<>();
String line;
while((line = r.readLine()) != null)
{
listStrings.add(line);
}
Collections.sort(listStrings, String.CASE_INSENSITIVE_ORDER.reversed());
for(String text : listStrings)
{
w.println(text);
}
w.flush();
}
Я вызываю его из моего основного метода так:
public static void main(String[] args) throws Exception
{
doIt(new BufferedReader(new InputStreamReader(System.in)), new PrintWriter(System.out));
}
Вот результат:
Ввод:
ABCD
bcde
fegh
ijkl
Ввод:
ijkl
fegh
bcde
ABCD