具有相同内存位置的数组,将显示为输出

时间:2015-02-02 12:40:11

标签: java

请看下面的数组编程:

    public class array {

    public static <t> void main(String[] args) {

    String  str[]= new String[5];
    str[0]= "aaa";
    str[1]= "bbb";
    str[3]= "ccc";
    str[3]= "ddd";
    str[4]= "eee";

    for (int x=0; x<str.length; x++)

      System.out.println(str[x]);

     }
 }

   output: 
    aaa
    bbb
    null
    ddd
    eee

问题是..为什么它显示输出&#39; null&#39;对于第三个数据而不是&#34; ccc&#34;。以及显示第4个数据的原因。

2 个答案:

答案 0 :(得分:2)

您想要更改

str[3]= "ccc";

str[2]= "ccc";

首先你存储了&#34; ccc&#34;在str[3]。然后你存储了#34; ddd&#34;在同一个索引中。因此,该数组不再具有对&#34; ccc&#34;的引用。您从未向str[2]分配任何内容,这就是null的原因。

答案 1 :(得分:0)

你缺少索引2,这就是索引2没有值的原因。 如果你正在创建字符串数组,那么如果null这就是为什么索引2打印null值的原因,那么它的defoult值。

String  str[]= new String[5];
        str[0]= "aaa";
        str[1]= "bbb";
        str[2]= "ccc";  // change 3 index to 2
        str[3]= "ddd";
        str[4]= "eee";