Any have some solution?
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 file2 = reader.readLine();
reader.close();
ArrayList<String> arrayStringFile1 = new ArrayList<>();
ArrayList<String> arrayStringFile2 = new ArrayList<>();
// read file 1
BufferedReader readerFile1 = new BufferedReader(new FileReader(file1));
String line1 = readerFile1.readLine();
while (line1 != null) {
arrayStringFile1.add(line1);
line1 = readerFile1.readLine();
}
readerFile1.close();
// read file 2
BufferedReader readerFile2 = new BufferedReader(new FileReader(file2));
String line2 = readerFile2.readLine();
while (line2 != null) {
arrayStringFile2.add(line2);
line2 = readerFile2.readLine();
}
readerFile2.close();
int minArray;
int maxArray;
if (arrayStringFile1.size() < arrayStringFile2.size()) {
minArray = arrayStringFile1.size();
maxArray = arrayStringFile2.size();
} else {
minArray = arrayStringFile2.size();
maxArray = arrayStringFile1.size();
}
for (int i = 0; i < minArray; i++) {
if (arrayStringFile1.get(i).equals(arrayStringFile2.get(i))) {
lines.add(new LineItem(Type.SAME, arrayStringFile1.get(i)));
} else if (arrayStringFile2.get(i).equals("")) {
lines.add(new LineItem(Type.REMOVED, arrayStringFile1.get(i)));
} else if (arrayStringFile1.get(i).equals("")) {
lines.add(new LineItem(Type.ADDED, arrayStringFile2.get(i)));
}
}
int how = maxArray - minArray; // 43 -42 = 1
int whenstart = maxArray - how; // 43 -1 = 42
if (how != 0) {
for (int i = whenstart; i < maxArray; i++) {
if (maxArray == arrayStringFile1.size()) {
lines.add(new LineItem(Type.REMOVED, arrayStringFile1.get(i)));
} else {
lines.add(new LineItem(Type.ADDED, arrayStringFile2.get(i)));
}
}
}
}
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;
}
}
}