如何在java中传递数组

如何在java中传递数组,java,arrays,pass-by-reference,Java,Arrays,Pass By Reference,我试图与main方法中定义的数组进行比较,需要将它们传递给compareAnswers方法。我该怎么做 这是我的密码: /********************************************** * * Daniel Wilson * * CIS129 * * November 15 2017 * * Compaires test answers against correct answers * * **********************

我试图与main方法中定义的数组进行比较,需要将它们传递给compareAnswers方法。我该怎么做

这是我的密码:

/**********************************************
 *
 * Daniel Wilson
 * 
 * CIS129
 * 
 * November 15 2017
 * 
 * Compaires test answers against correct answers 
 * 
 * ********************************************/

import java.io.*;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;
import java.util.ArrayList;

public class CIS129_DanielWilson_PC6 {

public static void main(String args[]) {

  final int SIZE = 20;
  String[] givenAnswers = new String[SIZE];
  String[] correctAnswers =      { "B", "D", "A", "A", "C", "A", "B", "A", "C", "D", "B",  "C", "D", "A", "D", "C    ", "C", "B", "D", "A"}; 
  String answers = compareAnswers();

  InputStreamReader input = new InputStreamReader(System.in);
  BufferedReader reader = new BufferedReader(input); 

  try{
    System.out.println(Arrays.toString(correctAnswers));
    for (int i = 0; i<SIZE; i++) {
    System.out.println("please enter your answer for question " + (i+1));
      givenAnswers[i] = reader.readLine();
    }
  }catch (IOException e){
            System.out.println("Error reading from user");
      }
}
public static String compareAnswers(){

List<String> tempList = new ArrayList<String>();
for(int i = 0; i < correctAnswers.length; i++)
{
    boolean foundString = false;
    for(int j = 0; j < givenAnswers.length; j++)
    {
        if(givenAnswers[j].equals(correctAnswers[i]))
        {
            foundString = true; 
            break;
        }
    }
    if(!foundString) 
        tempList.add(givenAnswers[i]);
}
String ammountRight[] = tempList.toArray(new String[0]);
for(int i = 0; i < ammountRight.length; i++)
{
    System.out.println(ammountRight[i]);
  }
 }
}
/**********************************************
*
*丹尼尔·威尔逊
* 
*CIS129
* 
*2017年11月15日
* 
*对比测试答案和正确答案
* 
* ********************************************/
导入java.io.*;
导入java.io.IOException;
导入java.util.array;
导入java.util.List;
导入java.util.ArrayList;
公共类CIS129_DanielWilson_PC6{
公共静态void main(字符串参数[]){
最终整数大小=20;
字符串[]givenaswers=新字符串[大小];
字符串[]正确答案={“B”、“D”、“A”、“A”、“C”、“A”、“B”、“A”、“C”、“D”、“B”、“C”、“D”、“A”、“D”、“C”、“C”、“B”、“D”、“A”};
字符串答案=比较答案();
InputStreamReader输入=新的InputStreamReader(System.in);
BufferedReader reader=新的BufferedReader(输入);
试一试{
System.out.println(Arrays.toString(correctAnswers));
对于(inti=0;i像这样

public static String compareAnswers(ArrayList<String> firstArray, ArrayList<String> secondArray)
公共静态字符串比较应答器(ArrayList firstArray,ArrayList secondArray)

如何在java中传递数组

java只有按值调用; 但是java可以通过在需要的地方复制引用来传递引用

e、 g


只需传递它:)Java没有通过引用传递,一切都是通过值传递的我想说everyghint是通过引用传递的,但我能知道什么…@AntonH和Antoniosss Java总是通过值传递,通过引用传递意味着你可以分配给传递的变量,但你不能学习更好地格式化你的代码
public class Main{
     public static void main(String[] args){
            String[] arr = new String[size];
            // fill your array!

            Main.foo(arr);

     public static void foo(String[] a){
          // do something with your array.
          // if you change a value of the array, 
          // the array in main will be changed too.
     }
}