Я читаю два файла CSV со своего компьютера и заполняю список массивов этими данными.
Затем я сравниваю эти два списка массивов, чтобы найти совпадения.
Если файлы CSV содержать до 20 строк, то проблем с поиском совпадений и отображением нет, но когда csv файл содержит более 300 000 строк, результат утомительный.
Файл RFM.csv содержит 15000+ строк и отображает полный список содержимого
файл базы данных .csv содержит более 300 000 строк и выводится после 299 000 + строк. Но если выводить индекс отдельно, то значения от 0 до 299000 выводятся без проблем.
Строки в csv файле не сортируются. В двух файлах указаны полное имя и дата рождения.
Скажите, пожалуйста, в чем ошибка?
Код: Выделить всё
public class Podft {
public static void main(String[] args) throws IOException{
ArrayList listBD = new ArrayList();
ArrayList listPFM = new ArrayList();
ArrayList result = new ArrayList();
BufferedReader readerBD = new BufferedReader(new FileReader("C:\\Users\\d\\Doc\\БД.csv"));
BufferedReader readerPFM = new BufferedReader(new FileReader("C:\\Users\\d\\Doc\\РФМ.csv"));
String lineBD = readerBD.readLine();
String linePFM = readerPFM.readLine();
while (lineBD != null) {
listBD.add(lineBD);
lineBD = readerBD.readLine();
}
while (linePFM != null) {
listPFM.add(linePFM);
linePFM = readerPFM.readLine();
}
for(int i = 0; i < listBD.size(); i++){
for(int j = 0; j < listPFM.size(); j++){
if(listBD.get(i).equals(listPFM.get(j))){
result.add(listPFM.get(j));
}
}
}
for (String q : result){
System.out.println(q);}
}
Подробнее здесь: https://stackoverflow.com/questions/791 ... han-300000
Мобильная версия