Bifalgorithm post · Computer science one · Importance of javaequals() and javahashCode() Methods

How can a Java Comparator handle null values?

How can a Java Comparator handle null values? (Computer science one · Importance of javaequals() and javahashCode() Methods) — "Other considerations include nu…

Ideas in this flowchart

  • Manejo de valores nulos en comparadores de Java
  • El tratamiento de los valores nulos es una decisión de diseño
  • Ignorar los valores nulos
  • Los elementos nulos probablemente provocarían una NullPointerException
  • El usuario debe prevenir o manejar esas instancias
  • Esta opción puede ser preferible en la mayoría de los casos
  • Manejar los objetos nulos dentro del Comparator
  • El ejemplo de código ordena primero las instancias Student nulas
  • Si ambos estudiantes son nulos, compare devuelve 0
  • Si solo a es nulo, compare devuelve -1
  • Si solo b es nulo, compare devuelve 1
  • Si ninguno es nulo, se comparan sus nombres
  • Si los apellidos coinciden, se comparan los nombres
  • Si los apellidos difieren, se comparan los apellidos
  • La solución solo maneja valores Student nulos
  • Los valores nulos dentro de Student todavía pueden provocar una NullPointerException
Feed/

How can a Java Comparator handle null values?

No cover

Channel

Computer science one

1 page

"Other considerations include null values. How we handle these is a design decision. We could ignore it, in which case such elements would likely result in a NullPointerException and expect the user to prevent or handle such instances. This may be the preferable choice in most instances, in fact. Alternatively, we could handle null objects in the design of our Comparator. Code Sample 36.3 presents a Comparator for our Student class that orders null instances first.\n\n1 Comparator<Student> byNameWithNulls = new Comparator<Student>() {\n\n2 @Override\n\n3 public int compare(Student a, Student b) {\n\n4 if(a == null && b == null) {\n\n5 return 0;\n\n6 } else if(a == null && b != null) {\n\n7 return -1;\n\n8 } else if(a != null && b == null) {\n\n9 return 1;\n\n10 } else {\n\n11 if(a.getLastName().equals(b.getLastName())) {\n\n12 return a.getFirstName().compareTo(b.getFirstName());\n\n13 } else {\n\n14 return a.getLastName().compareTo(b.getLastName());\n\n15 }\n\n16 }\n\n17 }\n\n18 };\n\nCode Sample 36.3.: Handling Null Values in Java Comparators\n\nThis solution only handles null Student values, not null values within the Student object. If the getters used in the Comparator return null values, then we could still have NullPointerExceptions."

Flowchart preview
👍
0
0 comments0 shares

Sign in to view and post comments.