Piensa la respuesta antes de abrirla. Todas las opciones parecen razonables, y casi siempre hay un detalle que lo cambia todo.
Pregunta Java · Arrays
¿Cuál es el resultado de compilar y ejecutar el siguiente código? ¿Y por qué?
import java.util.Arrays;
public class Prueba {
public static void main(String args[]){
String[] arr = {"texto1", "texto3" , "texto2"};
Arrays.sort(arr);
System.out.print(" " + Arrays.binarySearch(arr, "texto2"));
System.out.print(" " + Arrays.binarySearch(arr, "texto3"));
System.out.print(" " + Arrays.binarySearch(arr, null));
}
}- Imprime
' 2 1 -1' - Imprime
' 1 2'y lanza unajava.lang.NullPointerException. - Imprime
' 2 1 0' - No compila porque sort no funciona con arreglos de Strings.
Ver la respuesta
Respuesta: 2.
java Prueba1 2Exception in thread "main" java.lang.NullPointerException: Cannot read field "value" because "anotherString" is null at java.base/java.lang.String.compareTo(String.java:2105) at java.base/java.lang.String.compareTo(String.java:144) at java.base/java.util.Arrays.binarySearch0(Arrays.java:2231) at java.base/java.util.Arrays.binarySearch(Arrays.java:2171) at Prueba.main(Prueba.java:9)
Después de sort el arreglo queda {"texto1", "texto2", "texto3"}, así que "texto2" está en la posición 1 y "texto3" en la 2. Para buscar, binarySearch compara con compareTo, y comparar una cadena con null lanza la excepción. Las dos primeras búsquedas ya se habían impreso, sin salto de línea porque se usa print, y la excepción aparece pegada a ellas.
import java.util.Arrays;, y sin esa línea el código no compila.Más preguntas de Java
- El orden de un HashSet
- wait() sin el monitor correcto
- start() con un argumento
- Dos hilos y una variable compartida
- wait() fuera de synchronized
- Leer más allá del final de un archivo
- Serializar una clase cuyo padre no es Serializable
- Clases internas anidadas
- Llamar a run() en vez de start()
- Un assert que nunca falla
- HashSet sin equals ni hashCode
- Campos transient al serializar
Pregunta publicada en 2013 y revisada en octubre de 2026. La respuesta se comprobó compilando y ejecutando el código con Java 25 LTS en un contenedor limpio; las salidas están copiadas de esa ejecución.
La 2 …. imprime 1 2 y lanza java.lang.NullPointerException
La 1 , Imprime 2 1 -1 , por que aunque envía una excepción .. se convierte en false, lo que se traduce a -1 (Que no lo encuentra).
imprime 1,2 y despues java.lang.NullPointerException
En primera instancia el código debe importar java.util.Arrays; una vez importado el código arriba imprime 1 2 y lanza java.lang.NullPointerException.