나는 다항식 계수의 일반화 된 유형을 가진 다항식 클래스를 구현 중이다. 이 코드는 다음과 같습니다.Java에서 일반화 된 유형에 대한 계산을 수행하는 방법은 무엇입니까?
public class Polynomial<T> {
private HashMap<Integer, T > polynomial;
public Polynomial(T coefficient, Integer index) {
polynomial = new HashMap<Integer, T>();
if (coefficient!=0)
polynomial.put(index, coefficient);
}
public void sum(Polynomial<T> w) {
for (Map.Entry<Integer, T> e : w.polynomial.entrySet()) {
T tmp = polynomial.get(e.getKey());
if(tmp==null)
polynomial.put(e.getKey(), e.getValue());
else {
polynomial.remove(e.getKey());
if (tmp+e.getValue()!=0)
polynomial.put(e.getKey(), tmp+e.getValue());
}
}
}
...
}
명백한 이유로 컴파일되지 않습니다. 연산자 : ==,! =, +, - 및 *는 일반화 된 유형 T에 대해 정의되지 않았습니다. Java에서 알고있는 것으로부터 연산자를 재정의 할 수 없습니다. 이 문제를 어떻게 해결할 수 있습니까?
이 질문을보십시오. http://stackoverflow.com/questions/8669838/java-generics-and-adding-numbers-together/8669901#8669901. – Novakov
나는 더 좋은 모델은 Monomial이 될 것이라고 생각한다. 계수와 지수가있는 단일 항이다. A Polynomial은 Monomials의 모음입니다. y = c * x^1000 + 1과 같은 것을 더 잘 표현할 수 있습니다. – duffymo