将数组作为参数传递给java中的函数

时间:2012-01-26 13:42:21

标签: java arrays function parameters

任何人都可以帮我从函数X()返回数组。我想将该数组作为参数传递给函数Y()

我有什么:

int[] create()throws IOException {
    System.out.println("Enter Size of Array");
    BufferedReader b=new BufferedReader(new InputStreamReader(System.in)); 
    n=Integer.parseInt(b.readLine());
    //A=new int[n];
    System.out.println("Enter Array"); for(i=0;i<n;i++) {
        int y=Integer.parseInt(b.readLine());
        A[i]=y;
    }
    return A;
}

void getarray() {
}

5 个答案:

答案 0 :(得分:6)

您可以将参数存储到成员变量中的X(),然后通过Y()中的成员变量访问该数组。

class YourClass {

    private int[] someArray;

    public void X(int[] argArray) {
        someArray = argArray;         // save it like this
        ...
    }

    public void Y() {
        ...
        someArray[3] = 2;             // access it here
    }
}

请注意,如果您想要线程安全,可以考虑将这些临时变量存储在ThreadLocal<int[]>中。


关于更新:如果A是成员变量,您可以通过A访问getarray()中的A或者,this.A如果它被某个局部变量遮蔽。

答案 1 :(得分:1)

通过声明方法

将数组传递给方法

public void myMethod(int[] ary);

然后,如果你有一个对象的实例,你可以

int[] myAry = new int[9];
obj.myMethod(myArray);

现在如果你的myMethod正在调用你的第二个方法,它只需将对数组的引用传递给第二个方法,它需要接受一个数组参数。如果没有,那么您需要将数组存储在类中的成员字段中。

class MyClass {
    int[] tmp;

    public void myMethod(int[] ary) {
        this.tmp = ary;
    }

    public void myMethod2(){
        // can use this.tmp, which will be null if it isn't set.
    }


}

答案 2 :(得分:1)

要将数组作为参数传递给您可以使用的方法:

public void X(int[] array) {
}

如果要从同一个类的两个不同方法访问数组,可以使该数组成为该类的成员:

public class MyClass {
    int[] array = new int[10];

    public void X() {
    }

    public void Y() {
    }
}

现在,XY都可以访问数组。

答案 3 :(得分:0)

class Z
{
  private int a[];

  public void x(int input [])
  {
     a=input.clone();//store input values in 'a' safely
  }

  public void y()
  {
   //work with a [] here
   System.out.println(a[0]);
   }
}

答案 4 :(得分:0)

您可以将任何内容传递给方法,包括数组。您所要做的就是在对象或简单变量类型之后添加方括号[](例如int[] inputchar[] inputJTree[] trees等等。)

public void X(int[] input) {
    //do stuff with 'input'
    Y(input);
}

public void Y(int[] input) {
    //do stuff with 'input'
}

请注意,方法Y接受简单变量类型int的数组。如果没有,则必须将数组存储在类的成员字段中,以便在Y方法中使用数组。