В разделе "Продвинутая работа с массивами" в пункте 1. Массив типа String есть пример задачи: Вот как бы выглядел код, если бы нам нужно было написать программу, которая «вводит с клавиатуры 10 строк и выводит их на экран в обратном порядке».
Scanner console = new Scanner(System.in);   //Создаем объект Scanner
String[] array = new String[10]; //Создаем объект-массив на 10 элементов
for (int i = 0; i < 10; i++)  //Цикл от 0 до 9
{
   array[i] = console.nextLine();   //Читаем строку с клавиатуры и сохраняем ее в очередную ячейку массива
}
for (int i = 9; i >= 0; i--)   //Цикл от 9 до 0
{
   System.out.println(array[i]);  //Выводим на экран очередную ячейку массива
}
Вроде понятно, но не понятно вот что, у нас 10 ячеек, я запускаю данный код, ввожу данные: "a" жму Enter подразумевая что a - записывается в 0 ячейку массива "b" жму Enter подразумевая что b - записывается в 1 ячейку массива "c" жму Enter подразумевая что c - записывается в 2 ячейку массива "d" жму Enter подразумевая что d - записывается в 3 ячейку массива "e" жму Enter подразумевая что e - записывается в 4 ячейку массива "f" жму Enter подразумевая что f - записывается в 5 ячейку массива НО, ввод прерывается окончанием программы и вывод работы программы такой: e d c b a Вопросы, 1. Почему программа остановилась после ввода 6ой буквы? 2. Почему вывелось всего 5 букв из 6ти принятых? 3. Как при таком коде ввести и вывести "10 строк"? Послесловие: Я прочитал про nextLine() и различия между next(), но до сих пор мне не заходит почему так? Второе, зачем в таком примере использовать nextLine(), если при использовании next() будет записано именно 10! строк в 10 ячеек массива, и вывод будет корректным. Получился какой то крик души, но прошу помощи!