【发布时间】:2014-10-31 16:58:48
【问题描述】:
Set<Entry<String, Object>> entryset = full_map.entrySet();
Iterator<Entry<String, Object>> it = entryset.iterator();
while (it.hasNext()) {
String key = (String) it.next().getKey();
System.out.println(key);
Object obj = full_map.get(key);
JSONObject obj1 = (JSONObject) obj;
URL url_2 = new URL("http://ws.audioscrobbler.com/2.0/?method=track.getsimilar&artist=" + obj1.getString("artist") + "&track="+obj1.getString("track") + "&limit=10&api_key=XYZ&format=json");
System.out.println(url_2);
URLConnection url_reader_2 = url_2.openConnection();
BufferedReader reader_2 = new BufferedReader(new InputStreamReader((url_reader_2.getInputStream()), Charset.forName("UTF-8")));
// System.out.println(reader_2);
String iterator_2 = " ";
/* while((iterator_2 = reader_2.readLine()) != null)
{
JSONObject jsonObject_2 = new JSONObject(iterator_2);
System.out.println(jsonObject_2);
}*/
}
上面的代码正在生成一个无限循环。有什么建议??
我也尝试过使用keySet() 而不是entrySet(),它给出了相同的结果。
虽然如果我删除:
BufferedReader reader_2 = new BufferedReader(new InputStreamReader(( url_reader_2.getInputStream()),Charset.forName("UTF-8")));
它不会进入无限循环。
【问题讨论】:
-
这不会无限循环。 HashMap 中只有这么多(例如,有限数量)键。
-
无限循环在哪里?您是否尝试过使用调试器单步执行您的代码?
标签: java iterator hashmap iteration