Из любопытства, сколько измерений массива вы можете иметь в Java?Максимальное количество измерений в массиве Java
ответ
Java-язык не ограничивает число измерений, но Java-В.М. спецификации ограничивает число измерений до 255.
Например, следующий код не будет компилироваться:
class Main {
public static void main(String[] args) {
final int[][][][][][][][][][][][][][][][]
[][][][][][][][][][][][][][][][]
[][][][][][][][][][][][][][][][]
[][][][][][][][][][][][][][][][]
[][][][][][][][][][][][][][][][]
[][][][][][][][][][][][][][][][]
[][][][][][][][][][][][][][][][]
[][][][][][][][][][][][][][][][]
[][][][][][][][][][][][][][][][]
[][][][][][][][][][][][][][][][]
[][][][][][][][][][][][][][][][]
[][][][][][][][][][][][][][][][]
[][][][][][][][][][][][][][][][]
[][][][][][][][][][][][][][][][]
[][][][][][][][][][][][][][][][]
[][][][][][][][][][][][][][][][] x;
}
}
с ошибкой:
1.java:18: error: array type has too many dimensions
[][][][][][][][][][][][][][][][] x;
^
1 error
(Ref: https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.1 «Дескриптор типа массива только действительный, если оно представляет собой 255 или меньше размеров.»)
Другими словами, если вам нужно больше 255 (ha!), Вам придется сделать внешние только массивы объектов, а затем применить их к фактическому типу, когда вы попадете под 256. – Gabe
Это интересно - я не знал, Знаю это. С одной стороны, мне интересно, почему кто-то когда-либо захочет использовать массив этой размерности, а с другой стороны, мне интересно, почему они ограничивают это так. – Cam
@Cam 255 подходит для 8 бит. – kennytm
Строго говоря о
Maximum number of dimensions in a Java array
только один одномерный массив можно в Java. потому что под капотом java обрабатывает многомерные массивы как массив массивов.
Доказательство концепции: http://www.willamette.edu/~gorr/classes/cs231/lectures/chapter9/arrays2d.htm
, поэтому его можно иметь неровные массивы в Java, как хорошо!
Небольшой эксперимент показывает, что максимальные размеры 255. 256 вызывает ошибку компиляции;
Этот ответ уже был представлен в 2010 году :-) – Carpetsmoker
Большое имя, между прочим. –