2012-01-02 3 views
1
의 벡터에서
+0

가능한 복제본 http://stackoverflow.com/questions/562894/java-detect-duplicates-in-arraylist – Vaandu

+0

@Vanithi - 아니요, 그 질문은 고유하지 않은 숫자를 찾는 것입니다. –

+0

그러나 'Set'을 사용하여 같은 것을 얻을 수도 있습니다. – Vaandu

답변

12

프로그램하는 가장 쉬운 방법은 Set<Integer>을 사용하는 것입니다.

Integer[] u = new HashSet<Integer>(c).toArray(new Integer[0]); 

(사용 LinkedHashSet 나 :

Vector<Integer> c = new Vector<Integer>(); 
// add elements to c 

Set<Integer> unique = new HashSet<Integer>(); 
unique.addAll(c); 
for (Integer i : unique) { 
    System.out.println(i); 
} 
+1

주문이 보존되지 않습니다. – delnan

+3

주문을 보존하려면'HashSet' 대신'LinkedHashSet'을 사용하십시오. – Jesper

+0

그리고 SortedSet을 사용하고자한다면'SortedSet'을 사용하십시오. –

2

이 벡터를 사용하여으로 설정하면 세트는 고유 번호만으로 구성됩니다.

1

여기가이 작업을 수행하는 특별한 방법은 없지만, 거의 기능적으로 동일 한 라이너 : 예를 들어,이 독특한 요소를 출력합니다 TreeSet는 순서를 유지뿐만 아니라 요소를 정렬 할 수 있습니다.)

int[] 더 작품 만들기, 그리고 int[]에 값을 복사 할 수있는 명시 적 루프를 수반 할 것입니다. 더 나은 대부분의 상황에서


FWIW는 ArrayList 대신 Vector 사용할 수 있습니다. 예외는 Vector이 제공하는 스레드 안전성의 종류 또는 대부분 Collection 클래스가없는 J2ME 기반 플랫폼 용으로 개발할 때 필요합니다.

+0

물론 J2ME에서는 ArrayList가 작동하지 않을뿐만 아니라 OP의 문제에 대한 'Set'기반 솔루션도 작동하지 않습니다. –