如何将引用数组传递给setter?

时间:2015-05-22 21:15:33

标签: java arrays

编写一个名为setTo5的方法,该方法传递对int数组的引用,并将该数组的内容设置为全部5s。这是我到目前为止所做的,它在public static void main(...);之后的第二行给出了一个错误。如何做一个更好的二传手?

public class Set5 {
    private static int n = 8;
    static int[] boop = new int[n];

    public static void main(String[] args){
        int[] roop = new int[n];
        roop.setTo5(5);

    }

    public void setTo5(int poop){
        for(int i = 0; i<n ; i++){
        poop = boop[i];

        }
    }

}

2 个答案:

答案 0 :(得分:1)

尝试这样的事情:

public class Set5 {
    private static int n = 8;
    static int[] boop = new int[n];

    public static void main(String[] args){
        int[] roop = new int[n];  

        //Create instance of Set5 class  to call setter
        Set5 set5reference = new Set5(); 

        set5reference.setTo5(roop);

        //All the values in roop will now be 5 as set by setter.

    }

    //change this method to accept array reference like this
    public void setTo5(int[] poop){
        for(int i = 0; i<n ; i++){
            poop[i] = 5;
        }
    }
}

答案 1 :(得分:1)

要使用某些值完全填充数组:

java.util.Arrays.fill(poop, 5)

在你的情况下:

public class Set5 {
    private static int n = 8;
    //static int[] boop = new int[n]; // unused variable

    public static void main(String[] args){
        int[] roop = new int[n];
        setTo5(roop);
        print(roop);
    }

    public static void setTo5(int[] poop){
        java.util.Arrays.fill(poop, 5)
       // for(int i = 0; i<poop.length ; i++){
       //    poop[i]=5;

        //}
    }

    public static void print(int[] poop){
         for(int i = 0; i<poop.length ; i++){
           System.out.println("array["+i+"] = "+poop[i]);

        }
    }


}