Вообщем проблема такая: мне нужно из текстового файла сделать ArrayList из массивов int[], я разбиваю каждую строку, и в цикле добавляю массивы в лист, но, с каждым добавлением, последующие массивы меняются на тот что добавляю. В итоге получается Лист из нескольких копий последнего массива.
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
public class FileReader {
public ArrayList<int[]> list = new ArrayList<>();
private int i;
int[] array = new int[4];
public FileReader(File file) {
}
public ArrayList<int[]> getArrListByFile(File file){
String num = new String();
int number;
int index = 0;
try {
BufferedReader in = new BufferedReader(new java.io.FileReader(file.getPath()));
String str;
while ((str = in.readLine())!= null){
i = 0;
while (str.contains(" ")){
index = str.indexOf(' ');
num = str.substring(0,index);
str = str.substring(index+1);
number = Integer.parseInt(num);
array[i] = number;
i++;
}
number = Integer.parseInt(str);
array[i] = number;
list.add(array);
}
in.close();
}catch (IOException e){
System.out.println(e);
}
return list;
}
}
Добавьте перед внутренним циклом (после i = 0
например) строку array = new int[4]
.
Такая проблема происходит потому, что Вы добавляете каждый раз одну и ту же ссылку на один и тот же массив в памяти. В итоге у Вас в ArrayList
несколько одинаковых ссылок.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Читаю (стр 336)
Есть map вида Map<BigInteger, Map<BigInteger, Object>> В реальности иерархия гораздо сложнееКак пробежаться по всем маппам и везде, где встречено нужное...
Публикую в вк результат игрыЕсли публиковать как сообщение , то результат можно редактировать в вк