无法将对象添加到非基本数组

时间:2016-03-20 14:49:37

标签: java arrays

这是测试类。 在这里我试图将字符串添加到字符串数组。在我的例子中,我不能在这里使用ArrayList。所以请给我一个解决方案。

public class Test {

String[] name = new String[10];

public void addName(String sName){
    for(String s : name){
        if(s==null){
            s = sName;
            break;
        }
    }
}

public void displayString(){
    for(String s : name){
        System.out.println(s);
    }
}
}

这是主要的课程

public class TestDemo {

public static void main(String[] args) {
    Test t = new Test();
    t.addName("prasad");
    t.addName("ravi");
    t.addName("john");

    t.displayString();
}

}

displayString的输出为空

3 个答案:

答案 0 :(得分:4)

s = sName将值赋给local变量,该变量曾用于保存与数组第N个成员相同的值,但在内存中使用不同的位置。
长话短说,更新s时,数组元素不是。

试试这个:

public void addName(String sName){
    for(int i= 0; i < name.length; i++){
        if(name[i]==null){
            name[i] = sName;
            break;
        }
    }
}

答案 1 :(得分:3)

将s视为复制名称[index]的的变量。为s赋值不会改变name [index]的值。

尝试:

public void addName(String sName){
    for (int i = 0; i < name.length; i++) {
        if (name[i] == null) {
            name[i] = sName;
            break;
        }
    }
} 

答案 2 :(得分:1)

像这样的事情应该有效

public void addName(String sName){
    for(int i=0; i<name.length; i++){
        if(name[i]==null){
           name[i] = sName;
           break;
        }
   }

}