我正在尝试为Farey sequence度6创建HashMap
,其中分母是关键,分数是值。我的代码是:
public class FareySequence {
public static void main(String[] args){
Map<Double, Double> map = new HashMap<Double, Double>();
for(double n = 1.0; n < 6.0; n++){
for(double d = 6.0; d > n; d--){
double frac = n / d;
if(frac < 1){
if(!map.containsValue(frac)){
map.put(d, frac);
}
}
}
}
System.out.print(map);
}
}
但是,当我运行它时,我得到:
{
4.0=0.75,
2.0=0.5,
5.0=0.8,
6.0=0.8333333333333334,
3.0=0.6666666666666666
}
我做错了什么?
答案 0 :(得分:0)
HashMap有你的切换算法,如果你想保持序列放入集合,你需要使用TreeMap()
按顺序打印:
{2.0 = 0.5,3.0 = 0.6666666666666666,4.0 = 0.75,5.0 = 0.8,6.0 = 0.8333333333333334}