Не понимаю почему не проходит решение.
Тестирую разными вариациям расположения строк, все работает.
Ругается на "Убедись, что список lines в нужных местах содержит операции REMOVED c нужными строками."
package com.javarush.task.task19.task1916;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
/*
Отслеживаем изменения
*/
public class Solution {
public static List<LineItem> lines = new ArrayList<LineItem>();
public static void main(String[] args) throws IOException {
ArrayList <String> arrayListFile1=new ArrayList<>();
ArrayList <String> arrayListFile2=new ArrayList<>();
BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(System.in));
String fileName1=bufferedReader.readLine();
String fileName2=bufferedReader.readLine();
bufferedReader.close();
FileReader fileReader1=new FileReader(fileName1);
BufferedReader bufferedReader1=new BufferedReader(fileReader1);
while (bufferedReader1.ready()){
arrayListFile1.add(bufferedReader1.readLine().replaceAll("[^а-яА-Я0-9]",""));
}
fileReader1.close();
bufferedReader1.close();
FileReader fileReader2=new FileReader(fileName2);
BufferedReader bufferedReader2=new BufferedReader(fileReader2);
while (bufferedReader2.ready()){
arrayListFile2.add(bufferedReader2.readLine().replaceAll("[^а-яА-Я0-9]",""));
}
bufferedReader2.close();
fileReader2.close();
int fileSize1=arrayListFile1.size()-1;
int fileSize2=arrayListFile2.size()-1;
int index1=0;
int index2=0;
boolean stopInter=true;
while (stopInter) {
String s1=arrayListFile1.get(index1);
String s2=arrayListFile2.get(index2);
String s11=index1==fileSize1?arrayListFile1.get(index1):arrayListFile1.get(index1+1);
int i1=Integer.parseInt(s1.replaceAll("[^0-9]",""));
int i2=Integer.parseInt(s2.replaceAll("[^0-9]",""));
int i11=Integer.parseInt(s11.replaceAll("[^0-9]",""));
if(index1==fileSize1&index2==fileSize2){
stopInter=false;
}if (i1==i2){
lines.add(new LineItem(Type.SAME,s2));
index1=index1<fileSize1?index1+1:index1;
index2=index2<fileSize2?index2+1:index2;
}else if(i11==i2|(fileSize2==index2&fileSize1>fileSize2)){
lines.add(new LineItem(Type.REMOVED,s1));
index1=index1<fileSize1?index1+1:index1;
}else {
lines.add(new LineItem(Type.ADDED,s2));
index2=index2<fileSize2?index2+1:index2;
}
}
while (index1 < fileSize1) {
lines.add(new LineItem(Type.REMOVED,arrayListFile1.get(index1)));
}
while (index2 < fileSize2) {
lines.add(new LineItem(Type.ADDED,arrayListFile1.get(index2)));
}
lines.forEach((lineItem->System.out.println(lineItem.type+" "+lineItem.line)));
}
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;
}
}
}