Java 如何显示数组中的元素计数?

Java 如何显示数组中的元素计数?,java,Java,我试图显示我制作的数组中的元素数。它是一个常规数组,数据类型为字符串。如果可以显示数组中元素的总数,那么代码是否与ArrayList类似 String[] list = new String[14]; list = new String[] {"Bob", "Sal", "Jimmy" ,"John"}; list = insert(list, "Joe", 0); list = insert(list, "Manny", list.length);

我试图显示我制作的数组中的元素数。它是一个常规数组,数据类型为字符串。如果可以显示数组中元素的总数,那么代码是否与ArrayList类似

    String[] list = new String[14];
    list = new String[] {"Bob", "Sal", "Jimmy" ,"John"};


    list = insert(list, "Joe", 0);
    list = insert(list, "Manny", list.length);
    list = insert(list, "Joey", list.length/2);



    System.out.println(Arrays.toString(list));

}

public static String[] insert(String[] original, String value, int k) {
    String[] copy = new String[original.length + 1];


    for(int i=0; i<k; i++)
    {
        copy[i] = original[i];
    }


    copy[k] = value;


    for(int i=k; i<original.length; i++)
    {
        copy[i+1] = original[i];
    }


    return copy;
}
String[]list=新字符串[14];
list=新字符串[]{“Bob”、“Sal”、“Jimmy”、“John”};
列表=插入(列表“Joe”,0);
列表=插入(列表,“Manny”,列表.长度);
列表=插入(列表,“乔伊”,列表长度/2);
System.out.println(Arrays.toString(list));
}
公共静态字符串[]插入(字符串[]原始,字符串值,int k){
String[]copy=新字符串[original.length+1];

对于(int i=0;i我建议您尽可能使用ArrayList,因为使用
size()方法会容易得多
。如果必须使用数组,由于数组已经调整大小,您可以使用for循环检查数组的哪个插槽!=为null,并将它们添加到计数器。

如前所述,最好使用的数组类型是通过方法将元素插入该数组的列表或ArrayList。当然,可以使用基本array是的,但正如您已经注意到的,您需要多做一点工作来完成任务。一种可能的方法是:

public static String[] insertStringArrayElement(String[] original, String value, int atIndex) {
    // Make sure the supplied index (k) is within bounds
    if (atIndex < 0 || atIndex > original.length) {
        throw new IllegalArgumentException("\ninsertArrayElement() Method Error! "
                                    + "The supplied index value is invalid (" 
                                    + atIndex + ")!\n");
    }

    String[] tmp = new String[original.length + 1];
    int elementCount = 0;   //Counter to track original elements.
    for(int i = 0; i < tmp.length; i++) {
        // Are where we want to insert a new elemental value?
        if (i == atIndex) {
            tmp[i] = value; // Insert the new value.
            i++;            //Increment i so to add the orininal element.
            // Make sure we don't go out of bounds.
            if (i < original.length) {
                tmp[i] =  original[elementCount]; // Add original element.
            }
        }
        // No we're not...
        else {
            tmp[i] = original[elementCount]; // Add original element.
        }
        elementCount++; // Increment counter for original element tracking.
    }
    return tmp; // Return our new Array.
} 
String[] list = new String[] {"Bob", "Sal", "Jimmy" ,"John"};
或者更好:

String[] list = {"Bob", "Sal", "Jimmy" ,"John"};

需要记住的是。

数组中的元素总数:
Array.length
创建一个包含14个元素的数组,只是为了扔掉它并在下一行中替换为一个包含4个元素的数组,这有什么意义?可能是@Andreas的重复,因为这是任务的一部分,以证明您知道如何增加大小问题中的任何内容都没有提到不计算空值,并且示例中的数组没有空值(忽略立即丢弃的垃圾14元素数组)。