2016-09-28 3 views
0

JAVA에 아래 질문이 있습니다. 나는 코드가 자명하다 고 생각한다. 그렇지 않다면 주저하지 말고 물어 보라.자바에서 변수 배열을 전달하는 방법

import java.util.List; 
public class NewClass { 
    public static void main(String[] args){ 
     int x = 0; 
     int y = 1; 
     int z = 2; 
     printer([x,y,z]); //if somehow this is possible in JAVA? 
    } 

    private void printer(List num){ 
     num.stream().forEach((i) -> { 
      System.out.println(i); 
     }); 
    } 
} 
+0

['Arrays.asList'] (https://docs.oracle.com/javase/8/)를 고려하십시오. docs/api/java/util/Arrays.html # asList-T ...-) – bradimus

+0

@HovercraftFullOfEels, 감사합니다. 확인했는데 오류가 발생했습니다. 기본적으로 JAVA에서 가능케 할 수있는 방법이 있는지 알고 싶습니다. –

+0

@TalhaTemuri 귀하의 질문을 업데이트하고 귀하가 달성하고자하는 바를 평이한 언어 (비 코드)로 설명하는 것이 도움이 될 것입니다. 목표가 참조로 배열을 전달하는 것이라면,'printer (...) '의 메소드 시그니처를 어떻게 업데이트 할 수 있는지이 답변을보십시오. http://stackoverflow.com/a/1610771/149428 –

답변

0

약 무엇입니까?

프린터 (Arrays.asList (new int [] {x, y, z}))); "..."당신이 주변에 임의의 "배열"을 전달할 수 있습니다 사용하는 경우; 즉

private void print(int ... numbers) 

을 :

+0

음수 -1을주는 사람은 누구인지 모르지만 방법은 완벽하게 작동합니다. 나는 정답으로 선택하고있다. 고맙습니다 :) –

+1

새 배열을 만들 필요가 없으므로 코드에서 ** new int [] {**를 편집하십시오. –

+0

@ TalhaTemuri 나는이 질문을 downvote하지 않았다; 그러나 기록을 위해 당신은 내 대답을 체크 아웃하고 싶을 것입니다. – GhostCat

3

는 현재 varargs를 사용하려면 그리고 컴파일러가 당신을 위해 일을합니다.

print(); // empty list 
print(1) // one entry 
print(1, 2, n) // entries ... 

print(List)를 사용하여 당신의 생각은 잘못된 접근입니다 - 당신은 거기 당신은 확실히 피하고 싶은 무언가를 원시 형을 만드는 : 같은, 그 방법을 사용할 수 있습니다.

그래서 다른 대안은 다음과 같습니다

void print(List<Integer> numbers) 

이 단말 Varagrs

print(Arrays.asList(1,2,3)); 
2

호출 할 네 것이 가능하지만 수집 정확한 구문

Varagrs로 모두 입력을 단일 배열로 전달합니다.

스트림과 함께 배열을 사용하려면 Arrays.stream 함수를 사용하여 배열 스트림을 가져올 수 있습니다.

import java.util.List; 
public class NewClass { 
    public static void main(String[] args){ 
     int x = 0; 
     int y = 1; 
     int z = 2; 
     printer(x,y,z); 
    } 

    private void printer(int... num){ 
     Arrays.stream(num).forEach(System.out::println); 
     // or Arrays.stream(num).forEach(i->System.out.println(i)); 
    } 
} 

는 출력 :

0 
1 
2 
+0

프린터 (x, y, z)에서 컴파일 오류가 발생합니다. – Karthik

+1

@ Karthik 고맙다, 내 코드를 업데이트했습니다. –

0
public static void main(String[] args) throws IOException { 

     List<Integer> intList =new ArrayList<Integer>(); 
     int x = 0; 
     int y = 1; 
     int z = 2; 
     intList.add(x); 
     intList.add(y); 
     intList.add(z); 
     printer(intList); 
     } 

     private static void printer(List<Integer> intList) { 
     for(int count=0;count<intList.size();count++) 
     System.out.println(""+intList.get(count)); 
     } 
    } 
관련 문제