Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中将数组作为参数传递和获取给函数_Java_Arrays_Function_Parameters - Fatal编程技术网

在java中将数组作为参数传递和获取给函数

在java中将数组作为参数传递和获取给函数,java,arrays,function,parameters,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()); //

有人能帮我从函数
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() {
}
int[]create()引发IOException{
System.out.println(“输入数组大小”);
BufferedReader b=新的BufferedReader(新的InputStreamReader(System.in));
n=Integer.parseInt(b.readLine());
//A=新整数[n];

System.out.println(“输入数组”);for(i=0;i可以将参数存储到成员变量中的
X()
,然后通过
Y()中的成员变量访问数组

注意,如果您想考虑将这些临时变量存储在<代码> THeLead本地< /代码>中,如果您希望线程安全。< /P>



关于更新:如果
A
是一个成员变量,您可以在
getarray()
中访问
A
,只需引用
A
,或者,
this.A
,如果它被某个局部变量隐藏。

通过声明方法将数组传递给方法

publicsvoidmymethod(int[]ari);

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

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.
    }


}

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

public void X(int[] array) {
}
如果要从同一类的两个不同方法访问数组,可以使该数组成为该类的成员:

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

    public void X() {
    }

    public void Y() {
    }
}

现在
X
Y
都可以访问数组。

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

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]);
   }
}

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

到目前为止您做了什么?code?您有一些代码要共享吗?我真的不明白您的意思,just使用数组类型的参数创建方法?int[]create()抛出IOException{System.out.println(“输入数组大小”);BufferedReader b=new BufferedReader(new InputStreamReader(System.in));n=Integer.parseInt(b.readLine());//a=new int[n];System.out.println(“输入数组”);for(i=0;我想访问getarray函数中的d数组…@Denny:请更新您的问题并添加代码。?=ob.array();其中array()返回数组..如何在中存储d值?我不明白您的意思。要创建整数数组,只需执行
int[]myArray=new int[10];
+1用于在问题是“如何将数组传递给函数”时提及ThreadLocal。我哈哈;)哈哈哈,我知道!但我注意到,一个完整的noob问题的答案,仍然能教育一个普通程序员一点,通常会赢得一些额外的选票:这可能是真的,但对我来说,当我看到它的时候,我实际上是不由自主地笑了。所以,投票给笑,而不是教育呵呵。显然,我知道你是这里的Java专家之一:)总有一天我会成为d级最佳java程序员-。-”。然后你会给我打职业电话:|
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]);
   }
}
public void X(int[] input) {
    //do stuff with 'input'
    Y(input);
}

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