On my files it works, but does not pass verification. My idea is ok?
package pl.codegym.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;
/*
Śledzenie zmian
*/
public class Solution {
public static List<LineItem> lines = new ArrayList<>();
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String file1 = reader.readLine();
//String file1 = "d:/q1.txt";
//String file2 = "d:/q.txt";
String file2 = reader.readLine();
reader.close();
FileReader fr1 = new FileReader(file1);
BufferedReader br1 = new BufferedReader(fr1);
FileReader fr2 = new FileReader(file2);
BufferedReader br2 = new BufferedReader(fr2);
ArrayList<String> arrayList1 = new ArrayList<>();
ArrayList<String> arrayList2 = new ArrayList<>();
String line1;
while ((line1 = br1.readLine()) != null) {
arrayList1.add(line1);
}
fr1.close();
br1.close();
String line2;
while ((line2 = br2.readLine()) != null) {
arrayList2.add(line2);
}
fr2.close();
br2.close();
for (int i = 0, j = 0; i < arrayList1.size() && j < arrayList2.size(); i++, j++) {
String a = arrayList1.get(i);
String b = arrayList2.get(i);
if (!arrayList1.contains(b)) {
lines.add(new LineItem(Type.ADDED, b));
} else if (!arrayList2.contains(a)) {
lines.add(new LineItem(Type.REMOVED, a));
} else if (arrayList2.contains(a)) {
lines.add(new LineItem(Type.SAME, a));
}
/*
for (int j = 0; j < arrayList2.size(); j++) {
String b = arrayList2.get(j);
//System.out.println(b);
if (!arrayList1.contains(b)) {
//System.out.println(b);
lines.add(new LineItem(Type.ADDED, b));
}
}
*/
}
/*
System.out.println(arrayList1);
System.out.println(arrayList2);
for (LineItem item : lines) {
System.out.println(item.type + "_____" + item.line);
}
*/
}
public static enum Type {
ADDED, // Dodana nowa linia
REMOVED, // Linia usunięta
SAME // Bez zmian
}
public static class LineItem {
public Type type;
public String line;
public LineItem(Type type, String line) {
this.type = type;
this.line = line;
}
}
}