Вам нужно сравнить два массива объемом более 300000 [дубликат]JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Вам нужно сравнить два массива объемом более 300000 [дубликат]

Сообщение Anonymous »

Добрый день.
Я читаю два файла 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»