Hola tengo el siguiente problema tengo un hasmap de tipo Integer que su key es un entero
pero ademas varios values, como nombre y rut mi problema es que quiero comparar entre el nombre y el value que se guardo en el hashmap como nombre y no me funciona.
con la key no tengo problemas porque ocupo la propiedad .containsKey(key) y no hay problema ni para eliminar o mostrar una busqueda , pero cuando quiero consultar en una condicon por el nombre o rut siempre me aparece esto:
<pre>(Exception in thread "main" java.lang.NullPointerException
at java.lang.String$CaseInsensitiveComparator.compare(String.java:1217)
at java.lang.String$CaseInsensitiveComparator.compare(String.java:1211)
at java.lang.String.compareToIgnoreCase(String.java:1258)
at Persona.BuscarPorNombre(Persona.java:62)
at AppAlumno.main(AppAlumno.java:84))
<pre lang='java'>//este es el codigo
//solo de la clase persona.
import java.util.*;
public class Persona {
private String nombre;
private String apellido;
private String run;
private int edad;
public HashMap<Integer,Alumno>hashalum=new HashMap<Integer,Alumno>();
public Persona() {
}
public Persona(String nombre, String apellido, String run, int edad) {
this.nombre = nombre;
this.apellido = apellido;
this.run = run;
this.edad = edad;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public void setApellido(String apellido) {
this.apellido = apellido;
}
public void setRun(String run) {
this.run = run;
}
public void setEdad(int edad) {
this.edad = edad;
}
public String getNombre() {
return (this.nombre);
}
public String getApellido() {
return (this.apellido);
}
public String getRun() {
return (this.run);
}
public int getEdad() {
return (this.edad);
}
public void BuscarPorNombre(String nombre)
{
System.out.println ("ingrese el nombre a buscar");
nombre=Leer.dato();
if(nombre.compareToIgnoreCase(getNombre())==0)//aqui esta el problema.
System.out.println(hashalum.get(nombre));
else
System.out.println ("el alumno no existe");
}
}
< /pre>