Hola amigos.
Finalmente quedó resuelta con el siguiente código:
Código:
private boolean urlVisitada(String ur, int gradoActual){
if(hashmap.containsKey(ur)){
if((Integer)hashmap.get(ur)<=gradoActual){
return true;
}else{
hashmap.remove(ur);
hashmap.put(ur, gradoActual);
return false;
}
}else{
hashmap.put(ur, gradoActual);
return false;
}
}
Este código define una función bijectiva, resolviendo así mi problema de que existía la probabilidad de que distintas claves pudieran tener el mismo valor, tal que así:
URL - > gradoActual(que siempre será el grado mínimo en el que se haya encontrado una URL)
Este tipo de estructuras permite la búsqueda de la relación entre clave-valor con un coste de complejidad O(1) en la mayoría de los casos, sin duda un excelente sustituto de vectores asociativos, pues la búsqueda de un elemento en un vector no ordenado supondría un coste, en el peor de los casos, O(n). Es decir, en un vector de 1 millon de elementos la búsqueda tardaría 1 millón de unidades de tiempo, frente a 1 unidad de tiempo, de media, que se tardaría con una estructura hash.
Comparto esta información para todos aquellos que les pueda resultar útil.
Si encuentran algún fallo en mi explicación les ruego que me corrijan.
HashMap en Java:
http://download.oracle.com/javase/1....l/HashMap.html
Gracias :)