public static void main(String[] args) {
Map<Design, Double> map = new HashMap<Design, Double>();
double[] dbl = new double[2];
for(int i=0; i<5; i++){
for(int j=0; j<2; j++){
System.out.println(j+i);
dbl[j] = j+i;
}
Design des = new Design(dbl);
map.put(des, Double.valueOf(i));
}
for(Design d: map.keySet()){
System.out.println(d.getFactors()[0] + "\t" + d.getFactors()[1]);
}
for(double d: map.values()){
System.out.println(d);
}
}
를 사용하여 매핑 값을 추가
public class Design {
private double[] factors = null;
public double[] getFactors() {
return factors;
}
public void setFactors(double[] factors) {
this.factors = factors;
}
public Design(double[] factors) {
this.factors = factors;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + Arrays.hashCode(factors);
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (!(obj instanceof Design))
return false;
Design other = (Design) obj;
if (!Arrays.equals(factors, other.factors))
return false;
return true;
}
오버라이드 (override) hasCode()와 같음()와 해시 맵 내 키와이 클래스를 사용하고
문제는 핵심 가치에 있습니다. 마지막으로 추가 된 키가 표시됩니다.
4.0 5.0
4.0 5.0
4.0 5.0
4.0 5.0
4.0 5.0
어디서 잘못 되었나요?
덕분에 ... 당신의 문제 그러나 관련이
에
을 변경 해결 방법은 DBL을 추가했다 = 새로운 더블 [2] 새로운 값을 배열에 할당하기 전에 ... –