Не проходит по последнему пункту. "Убедись, что список lines в нужных местах содержит операции ADDED c нужными строками." У меня все строчка в строчку совпадает с результатом тестовых данных
![]()

package com.javarush.task.task19.task1916;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.nio.file.Path;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
/*
Отслеживаем изменения
*/
public class Solution {
public static List<LineItem> lines = new ArrayList<LineItem>();
public static void main(String[] args) {
String file1 = "";
String file2 = "";
try (BufferedReader reader = new BufferedReader(new InputStreamReader(System.in))) {
file1 = reader.readLine();//"/home/denis/test/first.txt";//
file2 = reader.readLine();//"/home/denis/test/first1.txt";//
} catch (IOException e) {
e.printStackTrace();
}
List<String> file1Data = readDataFromFile(file1);
List<String> file2Data = readDataFromFile(file2);
for (int i = 0; i < file1Data.size(); i++){
String str1 = file1Data.get(i);
if (i < file2Data.size()) {
String str2 = file2Data.get(i);
if (str1.equals(str2)) {
lines.add(new LineItem(Type.SAME, str1));
} else {
if ( i < file1Data.size() -1 && file1Data.get(i +1).equals(str2)) {
lines.add(new LineItem(Type.REMOVED, str1));
file2Data.add(i,"");
} else {
lines.add(new LineItem(Type.ADDED, str2));
file1Data.add(i,"");
}
}
} else {
lines.add(new LineItem(Type.REMOVED, str1));
}
}
}
private static List<String> readDataFromFile(String file1) {
List<String> fileData = new ArrayList<>();
try (FileReader fr = new FileReader(file1)) {
BufferedReader bfr = new BufferedReader(fr);
while (bfr.ready()){
fileData.add(bfr.readLine());
}
} catch (IOException e) {
e.printStackTrace();
}
return fileData;
}
public static enum Type {
ADDED, //добавлена новая строка
REMOVED, //удалена строка
SAME //без изменений
}
public static class LineItem {
public Type type;
public String line;
public LineItem(Type type, String line) {
this.type = type;
this.line = line;
}
@Override
public String toString() {
return type + "." + line;
}
}
}