Сохраняет ли инициализированный массив его порядок?
Скажем, что я инициализирую массив следующим образом:
int[] anArray = {
100, 200, 300,
400, 500, 600,
700, 800, 900, 1000
};
Гарантируется ли, что элементы всегда будут вставлены в том же порядке, который я набрал при инициализации? Например: 100,200,300,400,500,600,700,...,1000
?
Ответы
Ответ 1
Да, это гарантируется спецификацией (см. JLS 10.6):
Инициализаторы переменных, непосредственно заключенные в фигурные скобки Затем инициализатор массива выполняется слева направо в текстовом порядок их возникновения в исходном коде. N-й переменный инициализатор задает значение n-1-го массива.
Ответ 2
Короткий ответ: Да, если вы его инициализируете так, они будут в порядке, как инициализировано.
См. JLS об этом:
Инициализаторы переменных, немедленно заключенные в фигурные скобки инициализатора массива, затем выполняются слева направо в текстовом порядке, который они имеют в исходном коде. Инициализатор n'th переменной задает значение n-1-го массива
https://docs.oracle.com/javase/specs/jls/se8/html/jls-10.html#jls-10.6
Ответ 3
Гарантировано ли, что элементы будут всегда вставлены в том же порядке, который я набрал при инициализации?
Да
Ответ 4
ДА!
Код, который вы опубликовали, идентичен этому:
int[] anArray = { 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000 };
Что это значит, создайте array
of integers
, где 100 переходит в положение 0, 200 в положение 1, 300 в положение 2, 400 в положение 3 и т.д.
Это работает одинаково для каждого массива каждый раз!
Ответ 5
Да, если массив меняет положение значений, большинство программ в современный день не будут работать.