在我的
java程序中,我已经停留了几行,这需要花费太多时间(大约20秒),这对我来说似乎很奇怪.
这是线
@H_502_4@Map<URL,Integer> res2 = new HashMap<>(); for (URL url : res) { res2.put(url,null); }哪个res定义如下:
@H_502_4@List<URL> res = new ArrayList<>();在我的程序中,res.size()〜= 1500
你知道我的问题可能来自哪里吗?
谢谢 !
解决方法
java.net.URL的hashCode()方法执行DNS解析. URL类不适合在HashSet中使用或作为HashMap中的键使用.使用字符串或java.net.URI.
这是一些背景知识:
> Michael Scharf: java.net.URL.equals and hashCode make (blocking) Internet connections….
> Eishay Smith: Java’s URL little secret(RobAu在对此答案的评论中链接)