添加到Java数组的填充元素

添加到Java数组的填充元素,java,arrays,initialization,Java,Arrays,Initialization,如果故意用小于声明大小的填充数组,为什么Java会向数组添加尾部填充元素?有关示例,请参见代码 package fillerelements; import java.util.Arrays; public class FillerElements { public static void main(String args[]) { // declare a one-dimensional array, size 25 int arrlist[] = new int[25

如果故意用小于声明大小的填充数组,为什么Java会向数组添加尾部填充元素?有关示例,请参见代码

package fillerelements;

import java.util.Arrays;

public class FillerElements {
  public static void main(String args[]) {
    // declare a one-dimensional array, size 25
    int arrlist[] = new int[25];

    // print length of arrlist
    System.out.println("length of arrlist is " + arrlist.length);

    // populate arrlist with 10 elements even though its declared size is 25
    // compiler will add 15 trailing 0s
    for (int i = 0; i < 10; i++)
      arrlist[i] = i + 1;

    // print arrlist
    System.out.print("arrlist: ");
    for(int j = 0; j < arrlist.length; j++)
      System.out.print(arrlist[j] + " ");
    System.out.println();
    System.out.println();

    // partial output from above
    /* arrlist: 1 2 3 4 5 6 7 8 9 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 */

    // print arrlist as an array
    System.out.println("length of arrlist is " + arrlist.length);
    System.out.println("arrlist: " + Arrays.toString(arrlist));

    // partial output from above
    /* arrlist: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] */
  }
}
包装填充物;
导入java.util.array;
公共级鱼片{
公共静态void main(字符串参数[]){
//声明一个一维数组,大小为25
int arrlist[]=新int[25];
//列表的打印长度
System.out.println(“arrlist的长度为”+arrlist.length);
//使用10个元素填充arrlist,即使其声明大小为25
//编译器将添加15个尾随0
对于(int i=0;i<10;i++)
arrlist[i]=i+1;
//打印列表
系统输出打印(“arrlist:”);
对于(int j=0;j
Java数组具有固定的长度,并且总是初始化为数组类型的定义良好的值。对于
int[]
这是
0

当您创建一个变量而不直接初始化它时,对于
int
它会使用一个默认值
0
,因此对于
int[]
它将给出
{0,0,…,0}

int arrlist[] = new int[25]; //-> {0,0,...,0}
然后删除并替换一些值,但不是全部



此处的详细信息:

您可能可以创建一个ArrayList。看

List arrayList=new arrayList()

查看修改后的示例

    int arrlist[] = new int[25];
    List<Integer> arrayList = new ArrayList<Integer>();

    // print length of arrlist
    System.out.println("length of arrlist is " + arrlist.length);
    System.out.println("length of arrayList is " + arrayList.size());

    // populate arrlist with 10 elements even though its declared size is 25
    // compiler will add 15 trailing 0s
    for (int i = 0; i < 10; i++) {
        arrlist[i] = i + 1;
        arrayList.add(i + 1);
    }

    // print arrlist
    System.out.print("arrlist: ");
    for (int j = 0; j < arrlist.length; j++)
        System.out.print(arrlist[j] + " ");
    System.out.println();
    System.out.println();

    // print arrlist
    System.out.print("arrayList: ");
    for (int j = 0; j < arrayList.size(); j++)
        System.out.print(arrayList.get(j) + " ");
    System.out.println();
    System.out.println();
int arrlist[]=new int[25];
List arrayList=新建arrayList();
//列表的打印长度
System.out.println(“arrlist的长度为”+arrlist.length);
System.out.println(“arrayList的长度为”+arrayList.size());
//使用10个元素填充arrlist,即使其声明大小为25
//编译器将添加15个尾随0
对于(int i=0;i<10;i++){
arrlist[i]=i+1;
arrayList.add(i+1);
}
//打印列表
系统输出打印(“arrlist:”);
对于(int j=0;j
//输出

列表的长度为25

数组列表的长度为0

arrlist:1234567891000000


arraylist:12345678910

Java数组具有固定长度。您似乎期望出现
ArrayList
的行为,如果这是您想要的,就使用它。要明确的是:当你说
intarrlist[]=newint[25]你得到一个25个零的数组。除了用零填充数组,他们还应该做什么?它实际上在
int arrlist[]=new int[25]行用零填充它@Tyler---所以它的本质是在声明时被填充,而我所做的一切就是重写这些值?@MichaelSwartz是的,这是正确的。我同意Elliott的观点,您可以使用ArrayList实现更为动态的方法,如果这不是您需要的功能,还可以根据需要在末尾添加元素