2013-03-20 4 views
-2

ArrayList 액터가 있습니다.Java의 ArrayList에 중복 요소가 있는지 확인하는 방법

램, 크리켓, 램, 체스

나는 단지 하나의 대신 중복의 "램"먹고 싶어 :이 배우가 변수 인쇄 할 때, 나는 이런의 출력을 얻을.

+3

'List' 대신'Set'을 사용하면 끝납니다. –

+0

동일 항목 : http://stackoverflow.com/questions/15518107/how-to-check-if-there-are-duplicate-elements-in-an-arraylist-in-java – Foredoomed

+0

@Foredoomed 내가 싫어. 요소를 제거하십시오. 난 그냥 ArrayList에 중복 항목이 있는지 알고 싶습니다. – Prasad

답변

6

List 대신 Set을 사용해야합니다. 워드 프로세서

: -

중복 요소가없는 컬렉션입니다. 좀 더 형식적으로, 집합은 e1.equals (e2)와 같은 요소 쌍 e1과 e2를 포함하지 않으며 에서 하나의 null 요소를 포함합니다. 이름에서 알 수 있듯이이 인터페이스는 수학 집합 추상화 을 모델링합니다.

1

왜 arraylist를 사용합니까? 세트를 사용하십시오.

또는 당신이 있다면 어떤 중복 java.util.Collections.sort를 사용하는 것이 알고 싶다면() 정렬하고 중복

또는

public int getNumOfDuplicates(List<Integer> dupAraay) 
{ 
    Set<Integer> yourSet = new HashSet(); 
    int dupFound = 0; 

    for (Integer yourInt : dupAraay) 
    { 
    if (!set1.add(yourInt)) 
    { 
    dupFound++; 
    } 
    } 
    return dupFound; 
} 
2
을 찾기 위해 현재 요소에 이전 요소를 비교

고유 한 요소를 저장하므로 ArrayList 대신 Set을 사용하는 것이 좋습니다.

1
ArrayList<String> values = ... //Your values 
HashSet<String> uniqueValues = new HashSet<>(values); 
for (String value : uniqueValues) { 
    ... //Do something 
} 
1

세트를 사용해야합니다. 특히, 순서가 중요하지 않은 경우 HashSet, LinkedHashSet을 사용하여 도착 순서를 유지할 것을 제안합니다.

다른 이유로 인해 실제로 ArrayList가 필요한 경우 LinkedHashSet에 복사 한 다음 다시 다시 복사하여 중복을 제거 할 수 있습니다. 이는 정렬 및 테스트보다 빠를 가능성이 높습니다.

1

contains

이 배열 목록에서 사용할 수있는 방법은 자바 문서에 갈 수 있습니다.

관련 문제