для массива Array [n] [n] (размер n которого равен двум), я хочу рекурсивно работать с квадрантами массива. Как я могу взять сегмент массива, который включает элементы [0 to (size/2)] [0 to (size/2)]? Я помню, что в python вы могли просто использовать индексирующие сращивания, такие как [0: размер/2], имеет ли JAVA аналогичный способ обработки этих элементов?сегментирование двумерного массива (JAVA)
0
A
ответ
1
Боюсь, вы не можете этого сделать.
Если все, что вам нужно было одномерный массив можно использовать 1:
Arrays.copyOfRange(T[] original, int from, int to)
Какой многословен, но по существу такой же, как нарезка в Python.
Но так как вам нужен двумерный массив (который реализуется в Java как array of arrays) вам нужно что-то вроде этого:
class QArray {
private Integer[][] array;
private int quadrantSize;
public QArray(Integer[][] array) {
this.array = array;
this.quadrantSize = array.length/2;
}
public QArray getQuadrant(int quadrant) {
QArray quadrantArray;
switch(quadrant) {
case 1:
quadrantArray = getQuadrant(0, quadrantSize);
break;
case 2:
quadrantArray = getQuadrant(0, 0);
break;
case 3:
quadrantArray = getQuadrant(quadrantSize, 0);
break;
case 4:
quadrantArray = getQuadrant(quadrantSize, quadrantSize);
break;
default:
throw new IllegalArgumentException("Invalid quadrant: " + quadrant);
}
return quadrantArray;
}
private QArray getQuadrant(int startRow, int startCol) {
Integer[][] quadrantArray = new Integer[quadrantSize][];
for (int r = 0; r < quadrantSize; r++) {
quadrantArray[r] = Arrays.copyOfRange(array[startRow + r], startCol, startCol + quadrantSize);
}
return new QArray(quadrantArray);
}
}
Где:
System.out.println(qArray);
System.out.println(qArray.getQuadrant(2));
System.out.println(qArray.getQuadrant(1));
System.out.println(qArray.getQuadrant(3));
System.out.println(qArray.getQuadrant(4));
Для некоторых qArray
даст вам:
[ 1, 2, 3, 4]
[ 5, 6, 7, 8]
[ 9, 10, 11, 12]
[13, 14, 15, 16]
[ 1, 2]
[ 5, 6]
[ 3, 4]
[ 7, 8]
[ 9, 10]
[13, 14]
[11, 12]
[15, 16]
Смежные вопросы
- 1. Сортировка двумерного массива двумерного массива java
- 2. «Зеркализация» двумерного массива [Java]
- 3. умножение двумерного массива java
- 4. Java действительные объявления двумерного массива
- 5. Написание двумерного массива в java
- 6. Сегментирование аудиосигнала
- 7. сортировка двумерного двоичного массива
- 8. Сумма двумерного массива Java (добавление всего)
- 9. Как умножить столбцы двумерного массива? Java
- 10. отображение пользовательского двумерного массива в java GUI
- 11. получить столбцы из двумерного массива в java
- 12. java - Как сгенерировать дерево из двумерного массива
- 13. Java: Заполнение двумерного массива из входного файла
- 14. Создание двумерного массива в java & index pos
- 15. Декларация и инициализация двумерного массива в Java
- 16. Специфическая область Java arraycopy двумерного массива
- 17. Инициализация двумерного генераторного массива
- 18. Объявление двумерного массива - Уточнение
- 19. Понимание двумерного массива Coffeescript
- 20. Внедрение двумерного массива
- 21. Печать содержимого двумерного массива
- 22. Назначение двумерного массива CUDA
- 23. Сигмоидная функция двумерного массива
- 24. Замена значений двумерного массива
- 25. Очистка двумерного массива
- 26. Вызов двумерного массива
- 27. Обрезка двумерного массива
- 28. Определение двумерного динамического массива
- 29. Сериализация/десериализация двумерного массива
- 30. Ошибки двумерного массива
Как насчет свойства 'length' массива и любых математических/plit вы хотите сделать на нем? –