2012-03-31 3 views
0

인사들을 하나를 보존 ... 중복 문자열을 제거하고 문자열 배열 만 내가 배열의 문자열에서 모든 중복 된 문자열을 제거하고 그 중 하나의 문자열을 유지하려고 해요

이 온도는 []를 될 가정 문자열 배열하고

temp[0] = "stack"; 
temp[1] = "overflow"; 
temp[2] = "stack"; 
temp[3] = "stack"; 
temp[4] = "overflow"; 

난 (가 다른 문자열 배열로 저장 될 수있다),이 경우 단지 "스택"및 "오버 플로우"를 필요로하지만

temp2[0] = "stack"; 
temp2[1] = "overflow"; 

TEM을 가정 한 순서를 보존 포함 P2는

+1

이 문제에 대해 어떻게 생각하십니까? 어떻게 해결하려고합니까? bruteforce 방식으로 시작할 수 있습니다. – zengr

+0

@KingAslan JavaScript 태그 위로 마우스를 올리고 조심스럽게 툴팁을 읽으십시오. –

+0

해시 셋은 순서를 유지하지 않지만 더 빠르게 링크 된 해시 집합은 순서를 유지하지만 조금 더 느립니다. – HRgiger

답변

4

java.util.LinkedHashSet 중복을 제거합니다.

temp = new LinkedHashSet<String>(Arrays.asList(temp)).toArray(new String[0]); 
+0

간단하면서도 효율적인 솔루션입니다 ... 감사합니다 .... –

+0

당신은 오신 것을 환영합니다. –

2

사용 Set

Set<String> uniqueStrings = new HashSet<String>(); 
uniqueStrings.add("Stack"); 
uniqueStrings.add("Overflow"); 
uniqueStrings.add("Stack");//ignored 
0

당신은 여기에서 설정 한 사용 네드 .. 다른 문자열 배열이 : 순서를 유지하면서

Set<String> set = new HashSet<String>(); 
set.addAll(Arrays.asList(temp)); 
temp2 = set.toArray(); 
관련 문제