Не очень понимаю, почему цикл не прерывается? Вроде как добавляем в список строку, если она не "end" и считываем строку для следующей итерации сравнения, но похоже, что нет.
package com.javarush.task.task07.task0722;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
/*
Это конец
*/
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
ArrayList<String> strings = new ArrayList<String>();
String string = null;
while(string != "end")
{
strings.add(string);
string = reader.readLine();
}
/*for (String string : strings) {
string = reader.readLine();
if (string != "end")
{
strings.add(string);
};
}*/
for (int j = 0; j < strings.size(); j++)
{
System.out.println(strings.get(j));
}
}
}