初始化的阵列是否保留其顺序?

时间:2016-01-11 23:52:07

标签: java arrays sorting

假设我像这样初始化一个数组:

int[] anArray = { 
    100, 200, 300,
    400, 500, 600, 
    700, 800, 900, 1000
};

是否可以保证元素始终按照我在初始化时输入的顺序插入?例如:100,200,300,400,500,600,700,...,1000

5 个答案:

答案 0 :(得分:13)

是的,这是由规范保证的(见JLS 10.6):

  

变量初始化器立即被括号括起来   然后在文本中从左到右执行数组初始值设定项   它们出现在源代码中。第n个变量初始化器   指定第n-1个数组分的值。

答案 1 :(得分:12)

简短回答:是的,如果你这样初始化它们,它们将按初始化顺序排列。

请参阅JLS:

  

然后,由数组初始化程序的大括号直接包围的变量初始值设定项按照它们在源代码中出现的文本顺序从左到右执行。第n个变量初始化器指定第n-1个阵列组件的值

https://docs.oracle.com/javase/specs/jls/se8/html/jls-10.html#jls-10.6

答案 2 :(得分:3)

  

是否可以保证元素始终按照我在初始化时输入的顺序插入?

答案 3 :(得分:1)

YES!

您发布的代码与此相同:

int[] anArray = { 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000 };

这样做是创建一个array integers,其中100位于0位,200位于位置1,300位置位置2,400位置位置等等。

每次对每个数组都一样!

答案 4 :(得分:0)

是的,如果数组正在改变值的位置,那么现代的大多数程序将无效。