Java中元素编号应该从0还是1开始?

Should element numbering start from 0 or 1 in Java?

我正在尝试学习 Java 中索引和元素的概念。我见过两种元素表示形式,但不确定哪一种是正确的。

对于具有 4 个元素的数组,第一个版本将 Element(0) 分配给第一个元素,将 Element(1) 分配给第二个元素,依此类推。此版本如下图所示。

第二个版本,Element(1)分配给第一个元素,Element(2)分配给第二个元素,依此类推。

我很困惑哪个版本的表示元素是正确的,哪个是错误的,这让我很困惑。

数组索引在java中从零开始。

编号到底是什么意思。数组以顺序方式排列数据,我们可以通过索引访问。

在Java中,因为其他人指出索引从0开始

您究竟想用编号表示什么?

您的元素编号也应该从 0 开始。这只会使事情变得简单,并有助于避免很多混乱。说的更详细一点,你只需要遵循一个命名法,这样你就不必记住它,也不会混淆。

数组的第一个 元素位于索引 0。

数组的 second 元素位于索引 1。

数组的 第三个 元素位于索引 2。

...

基本上,数组元素的(如您所说)是索引值加一。

我想你是说

Should I call element[0] the "zeroth" element or the "first" element?

IMO,程序员通常将其称为数组的第一个元素。但你也可以说它是索引 0 处的元素。

你明白我的意思了吗?在英语中,element[0] 始终是 第一个 元素。您可以在字典中查找单词 "first" 来验证这一点。按字面意思 "translate" element[0] 翻译成英文,就是 "The element at index 0".

我真的很喜欢 Sweeper 对它的解释。让我添加一段示例代码来澄清一些细节:

class MyClass {
    public static void main(String[] args) {
        // declare an array of integers
        int[] arr;

        // allocates memory for 3 integers
        arr = new int[3];

        // initialize first element
        arr[0] = 100;
        // initialize second element
        arr[1] = 200;enter code here
        // and so forth
        arr[2] = 300;

        System.out.println("Element at index 0: "
                           + arr[0]);
        System.out.println("Element at index 1: "
                           + arr[1]);
        System.out.println("Element at index 2: "
                           + arr[2]);
    }
} 

这个程序的输出是:

    Element at index 0: 100
    Element at index 1: 200
    Element at index 2: 300

对于索引0,元素值为100,是数组的'first'个元素。或者换句话说,如果您指的是数组的第 n 个元素,则它的索引将为 (n-1)。