2013-04-13 35 views
6

Tôi đã bị kẹt bởi một vài dòng trong chương trình java của tôi, mất quá nhiều thời gian (khoảng 20 giây), và nó có vẻ lạ đối với tôi.Thêm vào hashmap mất một thời gian dài

Sau đây là các dòng

Map<URL, Integer> res2 = new HashMap<>(); 
for (URL url : res) { 
    res2.put(url, null); 
} 

nào res được xác định như sau:

List<URL> res = new ArrayList<>(); 

Trong chương trình của tôi, res.size() ~ = 1500

Bạn có bất cứ ý tưởng về nơi mà vấn đề của tôi có thể đến từ đâu?

Cảm ơn!

+0

thử cỡ hashmap của bạn một cách thích hợp. HashMap mới (1500); –

+0

Tại sao bạn cần một bản đồ khi bạn chèn các giá trị null vào mỗi khóa? –

Trả lời

14

Phương pháp hashCode() của java.net.URL thực hiện độ phân giải DNS. Lớp URL không phù hợp để sử dụng trong một HashSet hoặc làm các phím trong một số HashMap. Sử dụng một trong hai Chuỗi hoặc java.net.URI.

Dưới đây là một số nền tảng:

+1

Xem thêm tại đây http://www.eishay.com/2008/04/javas-url-little-secret.html – RobAu

+0

Tuyệt vời, cảm ơn :) – Nisalon

Các vấn đề liên quan