2009-12-05 9 views
1

Java에 중복 제거 API가 있습니까? 데이터베이스에서 중복 된 항목 (중복 지문 등)을 제거하고 싶습니다. Java 프로그래밍을 통해 어떻게 가능합니까?Java의 중복 제거 API

+0

크로스 게시 : http://osum.sun.com/forum/topics/deduplication-apis-in-java – jheddings

+1

처음에 복제본이 있는지 어떻게 확인할 수 있습니까? –

+0

@James Black, Comparator를 작성할 수 있다면, 한 쌍의 요소가 중복된다는 것을 결정할 수 있습니다. –

답변

0

다음은 의사 코드의 간단한 예입니다. 더 나은 대답을 원한다면, 우리에게 더 좋은 질문을해야 할 것입니다.

public void deDuplicate(Array items) { 
    for(int i=0; i<items.length-1; i++) { 
    for(int j=i+1; j<items.length; j++) { 
     if(items[i].equals(items[j])) { 
     items.removeItemAt(j); 
     j--; 
     } 
    } 
    }  
} 
+1

==! = .equals() - 이것은 String과 기본 유형 외에는 원하는 결과를 얻지 못할 것입니다. Object 레퍼런스의 경우 이것은 값 동등성 대신에 참조 동등성을 테스트 할 것이다. 대신 값 평등을 테스트하기 위해 .equals()를 사용한다. – Nate

+1

이것은 단지 의사 코드 일뿐입니다. 즉 모든 자바 고유 구문 고유성을 넣지 않아도됩니다. – davr

5

자세한 내용이 없으면 Set을 사용하는 것이 좋습니다. 세트의 다양한 맛은 장단점이 다르지만 모두 기본 원칙이 있습니다. 각각은 다음과 같습니다.

복제 요소가 포함되지 않은 모음입니다.

요소를 집합에 추가 한 다음 다시 읽으면 각 고유 요소는 한 번만 나타납니다.

0

간단한 대답은 데이터베이스에서 중복을 제거하기위한 Java API가 없다는 것입니다. SQL 데이터베이스를 쿼리하고 업데이트하기위한 Java API가 있습니다. JDBC라고합니다. 그러나 중복을 발견하고 (그 의미가 무엇이든) 어떻게 제거해야 하는지를 알아야합니다. 이를 수행 할 SQL은 데이터베이스의 스키마와 중복을 탐지하는 수단에 크게 의존합니다.

0

이미 중복 항목을 찾는 방법을 알고 있다면 SQL 쿼리에서 "distinct"키워드를 사용할 수 있습니다.