import java.util.ArrayList;
import java.util.HashSet;
public class Program {
public static void main(String[] args) {
// 테스트할 데이터들을 만듭니다.
ArrayList<String> list = new ArrayList<>();
list.add("개");
list.add("고양이");
list.add("개");
list.add("개");
list.add("고양이");
list.add("새");
// 중복을 제거하는 removeDuplicates() 함수를 호출합니다.
ArrayList<String> unique = removeDuplicates(list);
for (String element : unique) {
System.out.println(element);
}
}
// 중복을 제거하는 removeDuplicates() 함수입니다.
static ArrayList<String> removeDuplicates(ArrayList<String> list) {
// 중복이 제거된 최종 결과를 담을 배열입니다.
ArrayList<String> result = new ArrayList<>();
// 중복을 체크하기 위해 데이터를 담아놓을 해시셋입니다.
HashSet<String> set = new HashSet<>();
// do-while문을 빠져나가기 위해 사용될 count 변수입니다.
int count = 0;
// do-while문 시작
do {
// 테스트 데이터에서 데이터를 하나 가져옵니다.
String item = list.get(count);
// 데이터가 체크용 해시셋에 존재하지 않으면 결과배열에 담습니다.
// 즉, do-while을 돌면서 체크용 해시셋에 존재하면 결과배열에 담기지 않게됩니다.
if (!set.contains(item)) {
result.add(item);
set.add(item);
}
// count를 증가시킵니다.
count++;
} while(list.size() > count);
// 최종 결과 배열을 반환합니다.
return result;
}
}
아래 예제와 주석을 참고해보시기 바랍니다.
결과는 다음과 같습니다.