2017-01-19 2 views
-1

최근 java 및 다음 프로그램에서 프로그래밍을 배우기 시작했습니다. 별개의 배열 요소를 인쇄하려고합니다. int arr [] = {2,5, 4,9,3,2,5,9,4} 그럼 난 단지 한 번만, 즉 예상 값을 얻을 수 있기를 원합니다. 2 5 4 9 3 아래 코드는 이렇게하는 것이지만 잘못되었습니다./P 내 O/P : 2 5 4 9. 사람이 내가 뭐하는 거지 저를 지적 할 수 잘못int 배열에서 중복 요소를 제거하는 프로그램

package prac; 

    public class RemoveDup { 

     public static void main(String[] args) { 

    int[] a={2,5,4,9,3,2,5,9,4}; 
    int n=a.length; 
    for(int i=0;i<=n;i++){ 
     //System.out.print("In i"+i); 
     for(int j=i+1;j<n;j++){ 
      //System.out.println("In j"+j); 
      if(a[i]==a[j]){ 
       System.out.println(a[i]); 
      } 
     } 

    } 
     } 

    } 
+1

코드 인쇄 중복을 할 모든 요소, 그것은 대답을 기존 아주 쉽게 찾을 것을 당신이 – luk2302

+0

을 달성하려고하는 것에 반대하는 일은 일부 30+ 가능성이있다 당신을위한 대답. – GhostCat

+0

ArrayIndexOOB 오류가 발생하지 않는다고 놀랍습니다. –

답변

1

다시 발명 바퀴 것은 좋은 아이디어가 아니라 최적의 하나입니다 당신이 시작하는 경우 언어를 배우기. 물론 디버그 문을 추가하여 비교 대상 등을 확인하거나 IDE (Netbeans/Eclipse)를 사용하여 코드를 단계별로 실행하면 어떤 일이 발생하는지 확인할 수 있습니다.

내 제안 : Set을 사용해야하고 모든 요소를 ​​집합에 삽입해야하며 같은 값을 두 번 삽입하면 중복되지 않습니다.

예를 들어

:

int[] a={2,5,4,9,3,2,5,9,4}; 
    int n=a.length; 
    HashSet<Integer> myVals = new HashSet<Integer>(); 
    for(int val : a){ 
     myVals.add(val); 
    } 
    for(int val : myVals){ 
     System.out.println(val); 
    } 
관련 문제