【发布时间】:2013-08-02 13:49:44
【问题描述】:
我是 Android 开发新手,我需要一个提示来找到解决问题的方法。
我有一个HashMap,其中包括一些频率为keys,幅度为values。
private Map<Integer, Integer> hashMap = new HashMap<Integer, Integer>();
hashMap.put(20, 32767);
hashMap.put(32, 32767);
hashMap.put(64, 32767);
hashMap.put(125, 6000);
我希望系统迭代这个 hashmap,每次它都应该根据频率和幅度生成音调,并询问用户是否听到了这个音调。如果是,那么我们移动到哈希图的下一个条目,如果不是,那么我们增加幅度并使用增加的幅度再次生成音调,并再次询问用户相同的问题。
我创建了一个迭代哈希映射条目的 for 循环,还使用了 Iterator,但问题是它显示了第一次迭代的所有警报。
有人可以帮忙吗?
编辑:
这是迭代代码:
for (Map.Entry<Integer,Integer> entry : hashMap.entrySet()) {
freqOfTone = entry.getKey();
amplitude = entry.getValue();
startCalibration();
}
【问题讨论】:
-
显示你的迭代代码。而且,我不确定你是否想要一个哈希图。你可能想要一个
Pair类或类似的东西。 -
喜欢Keyser请提供代码
-
迭代看起来不错.. 预期的行为是什么?
-
“但问题是它显示了第一次迭代的所有警报” 这没有任何意义。第一次迭代是什么?你的意思是在发布循环的第一次迭代中?
-
在 startCalibration() 方法中,它应该生成提示音,并显示警告询问用户是否听到提示音。如果是,那么我们将正常继续下一个条目,如果不是,则我们修改幅度并再次调用 startCalibration()。发生的事情是,一旦执行 for 循环,它就会显示哈希图中所有条目的所有警报。如果你愿意,我可以为你提供所有代码。