2017-11-17 3 views
-4

배열과 main 메소드에서 정의한 값을 비교하려고하는데 compareAnswers 메소드로 전달해야합니다. 어떻게해야합니까? 내가 참조로 전달하지만 내 교수는 많은 세부 사항에 그 적용되지 않았다 필요가 이해어떻게 배열을 Java로 전달합니까

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

:

여기 내 코드입니다. 어떤 도움을 주셔서 감사합니다. 내가 자바 배열을 통과 할 방법이

public static String compareAnswers(ArrayList<String> firstArray, ArrayList<String> secondArray) 
+0

그냥 통과 :) – Antoniossss

+2

자바는 더 통과 참조에 의한이없는, 모든 것이 내가 그 everyghint에 의해 참조 패스하지만 난 알 수 있습니다 ... – UnholySheep

+0

에 의해 전달 'public String compareAnswers (String [] givenAnswers, String [] correctAnswers)'두 개의 배열을 받아 들일 필요가있다. 그런 다음 필요한 정보를 메서드에 전달하기 만하면된다. 'compareAnswers (givenAnswers, correctAnswers)'; – Antoniossss

답변

-1

?

자바는 값으로 호출 만합니다. 하지만 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. 
    } 
} 
+0

감사합니다. NickDim –

0

처럼

관련 문제