.txt 파일에서 읽은 데이터가 고유한지 확인하기 위해 HashSet을 사용하려고합니다.HashSet이 중복 항목을 모두 제거하지 않습니다.
다음은 샘플 데이터입니다.
999990 bummer
999990 bummer
999990 bummer
999990 bummer
99999 bummer
999990 bummerr
Java.io.File 및 Java.util.Scanner를 사용하여 읽히고 Term of Object로 저장됩니다.
용어로 읽기;
while (rawTerms.hasNextLine()){
String[] tokens = rawTerms.nextLine().trim().split(delimiter);
if (tokens.length == 2) {
uniqueSet.add(new Term(Double.parseDouble(tokens[0]), tokens[1])); //add the term to set
}
else {
rawTerms.close();
throw new Exception("Invalid member length: "+ tokens.length);
}
}
allTerms = new ArrayList<>(uniqueSet); //Covert set into an ArrayList
Term class using Guava; 나는이 항목에서 저장되는 배열의 크기를 확인하는 테스트를 실행할 때
public Term(double weight, String theTerm){
this.weight = weight;
this.theTerm = theTerm;
}
@Override
public boolean equals(final Object obj) {
if (obj instanceof Term){
final Term other = (Term) obj;
return Objects.equal(this.weight, other.weight)
&& Objects.equal(this.theTerm, other.theTerm);
}
else {
return false;
}
}
@Override
public String toString(){
return toStringHelper(this).addValue(weight)
.addValue(theTerm).toString();
}
@Override
public int hashCode() {
return Objects.hashCode(this.weight, this.theTerm);
}
그러나, 내가 목표로하고 3 개 항목 대신 1을 얻는다. 이전에 추가 된 항목과 동일한 가중치 또는 용어를 사용하여 새로운 항목을 복제본으로 간주합니다.
모든 도움을 주실 수 있습니다!
매트
'고유 집합'이란 무엇입니까? – talex
서식이 매우 불안정합니다. 게시하기 전에 IDE에서 자동 서식을 지정하십시오. 형식이 일관성을 유지하는지 확인하십시오. 또한 자바에서는 이집트 괄호가 선호됩니다. 마지막으로,'return'을 가지고 있다면'else'가 필요 없습니다. –
@BoristheSpider 나는 애굽에 가본 적이 없으며 브래킷을 가져 오지도 않았지만 지금은 여러 해 동안 프로그래밍 해왔다. 옆으로 키우는 것, 나는 중괄호가 이집트 사람들 앞에서 다른 사람들의 생각에서 원하는 생각을 불러 일으킬 것이라고 생각합니다. :) –