Java – Nivel 3 – Test 10
Tests similares
Respuestas:
1. ¿Cuál es la salida del siguiente código?
List numbers = Arrays.asList(1, 2, 3, 4, 5);
int result = numbers.stream()
.filter(n -> n % 2 == 0)
.mapToInt(n -> n * n)
.sum();
System.out.println(result);
- Respuesta Correcta:
20 - Explicación:
- filter(n -> n % 2 == 0): Filtra solo los números pares: [2,4][2, 4][2,4].
- mapToInt(n -> n * n): Eleva al cuadrado cada número: [4,16][4, 16][4,16].
- sum(): Suma los cuadrados: 4+16=204 + 16 = 204+16=20.
2. ¿Qué imprimirá el siguiente código?
int x = 5, y = 10;
System.out.println(x > 3 ? y > 8 ? x + y : x – y : y);
- Respuesta Correcta:
15 - Explicación:
- x > 3 es verdadero, por lo que evalúa la rama del y > 8.
- y > 8 es verdadero, por lo que se evalúa x + y: 5+10=155 + 10 = 155+10=15.
3. ¿Cuál es el resultado de la siguiente expresión?
Stream.of(«a», «bb», «ccc», «dddd»)
.collect(Collectors.groupingBy(
String::length,
Collectors.mapping(String::toUpperCase, Collectors.toList())
));
- Respuesta Correcta:
{1=[A], 2=[BB], 3=[CCC], 4=[DDDD]} - Explicación:
- groupingBy(String::length): Agrupa las cadenas por su longitud.
- mapping(String::toUpperCase, Collectors.toList()): Convierte cada cadena en mayúsculas y las almacena en listas.
- Resultado:
- Longitud 111: [A].
- Longitud 222: [BB].
- Longitud 333: [CCC].
- Longitud 444: [DDDD].
4. ¿Qué hace el método replaceAll() en un Map?
- Respuesta Correcta:
Aplica una función a cada entrada del mapa, reemplazando el valor - Explicación:
- replaceAll() permite aplicar una función a cada par clave-valor del mapa, actualizando el valor según el resultado de la función.
5. ¿Qué método se usa para ordenar un array de objetos usando un comparador personalizado en Java?
- Respuesta Correcta:
Arrays.sort(array, comparator) - Explicación:
- Arrays.sort(array, comparator) ordena un array usando un comparador proporcionado por el usuario.
6. ¿Qué hace el método flatMap() en un Stream?
- Respuesta Correcta:
Aplana streams anidados en un solo stream - Explicación:
- flatMap() transforma cada elemento en un stream y luego aplana todos los streams en uno solo.
7. ¿Cuál es el resultado de la siguiente operación?
Integer.bitCount(21) + Integer.numberOfTrailingZeros(24)
- Respuesta Correcta:
7 - Explicación:
- Integer.bitCount(21): Cuenta los bits en 21=1010121 = 1010121=10101, que tiene 333 bits en 111.
- Integer.numberOfTrailingZeros(24): 24=1100024 = 1100024=11000, termina con 333 ceros.
- Resultado: 3+3=73 + 3 = 73+3=7.
8. ¿Cuál es la salida del siguiente código?
String str = «Java»;
System.out.println(str.chars().mapToObj(ch -> String.valueOf((char)(ch + 1))).collect(Collectors.joining()));
- Respuesta Correcta:
Kbwb - Explicación:
- chars() convierte cada carácter en su código Unicode.
- ch + 1 incrementa el valor Unicode de cada carácter:
- J → K, a → b, v → w, a → b.
- joining() combina los caracteres: Kbwb.
9. ¿Cuál es el resultado de Math.round(Math.random() * 10)?
- Respuesta Correcta:
Un número entre 0 y 10 - Explicación:
- Math.random() genera un número entre 0.00.00.0 y 1.01.01.0.
- Multiplicarlo por 101010 da un rango entre 0.00.00.0 y 10.010.010.0.
- Math.round() redondea al entero más cercano, produciendo un número entre 000 y 101010.
10. ¿Qué interfaz funcional se utiliza para representar una operación que acepta un argumento y produce un resultado booleano?
- Respuesta Correcta:
Predicate - Explicación:
- Predicate<T> representa una operación que toma un argumento de tipo TTT y devuelve un valor booleano. Es ideal para evaluaciones de condiciones.