2012-11-17 4 views
4

그래서 int [] 배열에있는 값으로 반복 할 노력하고있어. 당신이배열 반복

{0,1,2,3} 

당신의 출력에있다가 내가 확실히 알고

{1,2,2,3,3,3}. 

입니다 얻는 경우에 당신이 배열을 가지고 그래서 기본적으로 경우 {1,2,3,4} 당신의 출력은

{1,2,2,3,3,3,4,4,4,4} 

이거나됩니다 여기에 두 개의 루프가 있지만 코드 배열을 복사 할 수있는 코드를 알아낼 수가 없습니다. 2에서 2를 얻을 수 없습니다. 도움을 주시면 감사하겠습니다. 감사합니다.

편집 여기 내가 생각 코드는 내가이 일 것이지만, 그냥 같은 목록을 반환하거나 언젠가 내가 그것을 변경하는 경우 주위에 병이 바로 새로운 배열에 4를 얻을 생각

public static int[] repeat(int []in){ 
    int[] newarray = new int[100]; 

    for(int i = 0; i<=in.length-1;i++){ 

     for(int k= in[i]-1;k<=in[i];k++){ 

      newarray[i] = in[i]; 

     } 
    } 
    return newarray; 
} 

작동합니다.

+6

지금까지 시도한 것을 보여주십시오. 그리고 stackoverflow는 코드 팩토리가 아니라는 것을 명심하십시오. – home

+0

새 배열의 크기와 이전 배열을 새 배열에 배치하는 방법은 두 가지를 찾아 내야합니다. 첫 번째 문제는 간단한 루프를 통해 해결할 수 있지만 두 번째 문제는 언급 한 것처럼 중첩 루프를 통해 해결할 수 있습니다. – jma127

+0

어쨌든 이것을 어떻게 사용하고 있습니까? 어쩌면 해결하려는 문제에 대한 더 나은 해결책이있을 수 있습니다. – Sietse

답변

1

이 동적으로 올바른 크기의 새로운 배열을 구축하고 다음을 채 웁니다.

int[] base = { 1, 2, 3, 4 }; 
    int size = 0; 
    for(int count : base){ 
     size += count; 
    } 

    int[] product = new int[size]; 

    int index = 0; 
    for(int value : base){ 
     for(int i = 0; i < value; i++){ 
      product[index] = value; 
      index++; 
     } 
    } 

    for(int value : product){ 
     System.out.println(mine); 
    } 
+0

이 솔루션은 훌륭하게 작동하지만 문제는 정확히 어떻게 작동하는지 이해할 수 없다는 것입니다. Java를 매우 오랫동안 공부 한 적이 없었습니다. for 루프는 (정확히 "int count : base") 정확히 – user1832483

+0

루프를 반복합니다. 한 번에 하나의 항목을 배열을 통해 왼쪽에 선언 된 변수 I에 현재 항목을 배치합니다. 그래서 for (int value : base)는 각 항목에 대한 기본 설정 "value"를 차례로 반복합니다. 더 나은 설명을위한 구글 "각 루프를위한 Java": P – thedan

+0

아픈 표정. – user1832483

1

시도 :

LinkedList<Integer> resList = new LinkedList<Integer>(); 
for(int i = 0 ; i < myArray.length ; ++i) { 
    int myInt = myArray[i]; 
    for(int j = 0 ; j < myInt ; ++j) { // insert it myInt-times 
     resList.add(myInt); 
    } 
} 
// TODO: build the result as an array : convert the List into an array 
0

이 시도 :

int[] anArray = { 
    0, 1, 2 
}; 
int[] newArray = new int[100]; 
int cnt=0; 
for(int i=0; i<anArray.length; i++) 
{ 
    for(j=1;j>0;j--) 
    { 
     newArray[cnt]=anArray[i]; 
     cnt++; 
    } 
}