Проверял работоспособность кода, тесты выполнялись корректно. Не выполняются 5 последних условий, не считая последнего.
package com.javarush.task.task17.task1721;
import java.io.*;
import java.util.*;
public class Solution
{
public static List<String> allLines = new ArrayList<String>();
public static List<String> forRemoveLines = new ArrayList<String>();
public static void main(String[] args)
{
Solution solution = new Solution();
try
{
solution.joinData();
} catch (IOException e) { e.printStackTrace(); }
}
public void joinData() throws IOException
{
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String nameOfFirstFile = reader.readLine(), nameOfSecondFile = reader.readLine();
readingDataFromFirstFile(nameOfFirstFile);
readingDataFromSecondFile(nameOfSecondFile);
checkingToDeleteAllLines();
}
private void readingDataFromFirstFile(String nameFile) throws IOException
{
readingData(allLines, nameFile);
}
private void readingDataFromSecondFile(String nameFile) throws IOException
{
readingData(forRemoveLines, nameFile);
}
private void readingData(List list, String nameFile) throws IOException
{
BufferedReader reader = new BufferedReader(new FileReader(new File(nameFile)));
String dataFromFile;
while((dataFromFile = reader.readLine()) != null)
{
list.add(dataFromFile);
}
reader.close();
}
private void checkingToDeleteAllLines() throws CorruptedDataException
{
int numberOfRepetitions = 0;
for (int iterator = 0; iterator < forRemoveLines.size(); iterator++)
{
if (allLines.contains(forRemoveLines.get(iterator)))
{
++numberOfRepetitions;
}
}
if (numberOfRepetitions == forRemoveLines.size())
{
deleteAllLinesFromSecondFile();
}
else
{
deleteAllLines();
}
}
private void deleteAllLinesFromSecondFile()
{
Iterator<String> iterator = allLines.iterator();
while (iterator.hasNext())
{
if (forRemoveLines.contains(iterator.next()))
{
iterator.remove();
}
}
}
private void deleteAllLines() throws CorruptedDataException
{
for (int iterator = allLines.size() - 1; iterator > -1; iterator--)
{
allLines.remove(iterator);
}
throw new CorruptedDataException();
}
}