#java
#java
Вопрос:
Мне нужно преобразовать 2D-массив в список, удалить дубликаты и распечатать значения.
Используя приведенный ниже код, я не могу распечатать 2D-массив
Когда я попытался распечатать его, он печатает значение индекса.
Даже я пытался использовать итератор,
int array2D [][] = {{111,555,111,78,98},{87,54,53}};
ArrayList<Integer> numberList = new ArrayList<Integer>();
for(int i=0;i<array2D.length;i )
{
for(int j=0;j<array2D[i].length;j )
{
numberList.add(i, j);
}
}
System.out.println(numberList);
Iterator iter = numberList.iterator();
while (iter.hasNext()) {
System.out.println(iter.next());
}
Тем не менее, он не работает.
Комментарии:
1. Как вы думаете, что
numberList.add(i,j)
это должно делать?2. Мое предположение — это добавит строки и столбцы в массив
3. Что значит «мое предположение»? Разве вы не написали эту программу? Должно быть, у вас было какое-то намерение, когда вы писали эту инструкцию. В любом случае,
list.add(x,y)
помещает значениеy
вx
позицию списка. Итак, еслиx
равно 6 иy
равно 20, 7-м элементом в списке будет 20.
Ответ №1:
Когда я попытался распечатать его, он напечатал значение индекса.
Он печатает значение индекса, потому что вы добавили индексы вместо фактического значения. Вы должны добавить фактическое значение массива по индексу i
и j
тому подобное:
numberList.add(array2D[i][j]);
Если вы хотите удалить дубликаты, вы можете использовать Set
вместо ArrayList
:
Set<Integer> numberList = new LinkedHashSet<>();
Комментарии:
1. Использование a
HashSet
изменит порядок элементов. Когда в задаче указано «перемещение в список», а не «перемещение в коллекцию», это подразумевает, что порядок важен, поскольку это основная предпосылка списка.