f1=1 2 1 2; f2=1 1; выдает same=1;remove=2;same=1;remove=2; в общем - вывод корректный Подскажите как правильно вставить код на форуме. не форматирует кода import java.util.*; import java.io.*; class Solution { public static List<LineItem> lines = new ArrayList<LineItem>(); public static void main(String[] args) throws IOException { String sit="/storage/emulated/0/f.f.1\n/storage/emulated/0/f.f.2\n/storage7/emulated/0/f.f.12\n"; BufferedReader br=new BufferedReader(new InputStreamReader(new ByteArrayInputStream(sit.getBytes()))); //BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); String f1=br.readLine(); String f2=br.readLine(); br.close(); f1="1\n2\n1\n2\n";f2="1\n1\n"; //if("1".equals("1"))System.out.println("is equal"); BufferedReader b1=new BufferedReader(new InputStreamReader(new ByteArrayInputStream(f1.getBytes())));BufferedReader b2=new BufferedReader(new InputStreamReader(new ByteArrayInputStream(f2.getBytes()))); //BufferedReader b1=new BufferedReader(new FileReader(f1)); //BufferedReader b2=new BufferedReader(new FileReader(f2)); ArrayList <String>a=new ArrayList<String>(); ArrayList <String>b=new ArrayList<String>(); String name; while((name=b1.readLine())!=null){ a.add(name); } while((name=b2.readLine())!=null){ b.add(name); }b1.close();b2.close(); int c=0;int d=0; for(;d<a.size();){ //System.out.println(a.get(c)+"-"+b.get(d)); if (a.get(c).equals(b.get(d))){ lines.add(new LineItem(Type.SAME,a.get(c))); c++;d++; }else if(a.get(c+1).equals(b.get(d))){ lines.add(new LineItem(Type.REMOVED,a.get(c)));c++; lines.add(new LineItem(Type.SAME,b.get(d)));c++;d++; }else if(a.get(c).equals(b.get(d+1))){ lines.add(new LineItem(Type.ADDED,b.get(d)));d++; lines.add(new LineItem(Type.SAME,a.get(c)));c++;d++; }else{ c++;d++; //System.out.println("ERRORR"); } if(d>=b.size())break; } int ad=(a.size()-c);int bd=(b.size()-d); if(ad>bd && ad!=bd){ lines.add(new LineItem(Type.REMOVED,a.get(c))); }else if (ad<bd && ad!=bd){ lines.add(new LineItem(Type.ADDED,b.get(d))); } for(LineItem ss:lines){ System.out.println(ss.type+"="+ss.line); } ByteArrayOutputStream b3=new ByteArrayOutputStream(); } 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; } } }