비교하려고하는 객체 (Word
)가 int
으로 정의 된 두 개의 속성을 가지고 있으므로 비교기를 구현하려고합니다.표준 편차는 전이 적이 지 않습니다?
이 두 값의 표준 편차를 얻고 싶습니다. (더 많을 수도 있지만 2 일 수도 있습니다.) 개체가 가장 낮은 값을 갖는 목록을 정렬합니다. 하지만 분명히, 내 방법은 this question을 기반으로 한 전 이적이지 않다는 것을 말하고 있습니다 (저는 동일한 예외가 있기 때문에 생각합니다). 하지만 표준 편차의 결과를 비교하는 방법은 여기에서 볼 수 없습니다.
나는 수학과 혼동하고이 방법이 과도 적이 지 않거나 잘못된 것을 지적한 특별한 경우를 고려하지 않았습니다.
for(Map.Entry<String,List<Word>> entry: list.entrySet()){
Collections.sort(entry.getValue(), Collections.reverseOrder(new SimpleComparator()));
...
}
비교기 클래스 :
목록 정렬
import java.util.Comparator;
public class SimpleComparator implements Comparator<Word> {
@Override
public int compare(Word word1, Word word2) {
int b1,b2,f1,f2;
double average1,average2, result1,result2;
b1 = word1.getAttr1();
b2 = word2.getAttr1();
f1 = word1.getAttr2();
f2 = word2.getAttr2();
average1 = (b1-f1)/2;
average2 = (b2-f2)/2;
result1 = Math.sqrt((Math.pow(b1-average1,2)+Math.pow(f1-average1,2))/2);
result2 = Math.sqrt((Math.pow(b2-average2,2)+Math.pow(f2-average2,2))/2);
return (int)(result1 - result2);
}
}
가 해당 비교기 equals와 일관성하여 메소드 이의 예이다. 나는 당신이 (예를 들어)? :를 사용하여 결과로 -1, 0, 1을 얻고 싶다고 생각한다. –