ArrayList <ArrayList <Integer>>

156
03 ноября 2019, 15:30

Как правильно добавлять элементы к списку типа

ArrayList<ArrayList <Integer>>?

Я делаю так:

ArrayList <Integer> gf=new ArrayList<>();
ArrayList <ArrayList <Integer>> gg=new ArrayList<ArrayList <Integer>>();
for (int j = 0; j < 3; j++) {
  gf.clear();
  for (int i = 0; i < 3; i++){
    rg = 0 + (int)(Math.random() * 2);
    gf.add(rg);
  }
  System.out.println(gg);
  gg.add(gf);
}

Ожидаю

(0,0)
(0,0)(1,0)
(0,0)(1,0)(0,1)

Получается

(0,0)
(1,0)(1,0)
(0,1)(0,1)(0,1)

?

Answer 1

Ваш код добавляет в gg один и тот же список ArrayList <Integer>.

ArrayList <ArrayList <Integer>> gg = new ArrayList<ArrayList <Integer>>();
for (int i = 0; i < 3; i++) {
  ArrayList <Integer> gf = new ArrayList<Integer>();
  for (int j = 0; j < 3; j++) {
    ...
  }
  gg.add(gf);
}
READ ALSO
Как проинициализировать объекты enum вне класса

Как проинициализировать объекты enum вне класса

1Почему в конструктор объекта Enum нельзя передать значение позже (не в самом классе где он автоматически создается)?

167
Упростить код создания массивов

Упростить код создания массивов

Поскажите пожалуйста, можно ли упростить такой код? Или так и писать на 20 Case?

178
JFrame и JPanel в JAVA. не все отрисовываются

JFrame и JPanel в JAVA. не все отрисовываются

мое задание - написать имитацию тараканьих бегову меня есть такие классы: Game - основной класс, создает JFrame и принимает входной параметр (количество...

170
Не работаєт @NotNull

Не работаєт @NotNull

@NotNull это аннатоция из пакета javaxvalidation

144