2013-04-13 19 views
6

Ho bloccato alcune righe nel mio programma java, che richiedono troppo tempo (circa 20 secondi) e mi sembra strano.Aggiungi a hashmap richiede molto tempo

Qui ci sono le linee

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

Quali res definito come segue:

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

Nel mio programma, res.size() ~ = 1500

hai qualche idea di da dove potrebbe venire il mio problema?

Grazie!

+0

provare il dimensionamento hashmap in modo appropriato. nuova HashMap (1500); –

+0

Perché è necessaria una mappa quando si inseriscono valori nulli per ogni chiave? –

risposta

14

Il metodo hashCode() di java.net.URL esegue la risoluzione DNS. La classe URL non è adatta per l'uso in un HashSet o come chiavi in ​​un HashMap. Utilizzare le stringhe o java.net.URI.

Ecco alcuni retroscena:

+1

Vedi anche qui http://www.eishay.com/2008/04/javas-url-little-secret.html – RobAu

+0

Fantastico, grazie :) – Nisalon

Problemi correlati