Java – Nivel 3 – Test 6
Tests similares
Respuestas:
1. ¿Qué hace el método flatMap() en un Stream?
- Respuesta Correcta:
Aplana streams anidados en un solo stream - Explicación:
- flatMap() toma cada elemento de un stream y lo transforma en un nuevo stream, luego aplana todos esos streams en un único stream continuo.
2. ¿Qué hace el método computeIfAbsent() en un Map?
- Respuesta Correcta:
Calcula un valor si la clave no existe y lo agrega al mapa - Explicación:
- Si la clave no está presente en el mapa, computeIfAbsent() usa una función para calcular el valor y lo inserta en el mapa.
3. ¿Cuál es el resultado de la siguiente expresión?
IntStream.rangeClosed(1, 5).boxed().collect(Collectors.partitioningBy(i -> i % 2 == 0))
- Respuesta Correcta:
{false=[1, 3, 5], true=[2, 4]} - Explicación:
- partitioningBy(i -> i % 2 == 0) clasifica los elementos en dos grupos basados en si son pares (true) o impares (false).
- El resultado es un mapa donde la clave es el resultado del predicado (true o false) y el valor es una lista de elementos que cumplen o no la condición.
4. ¿Cuál es la salida del siguiente código?
String str = «Java»;
System.out.println(str.chars().mapToObj(ch -> String.format(«%02X», ch)).collect(Collectors.joining()));
- Respuesta Correcta:
4A617661 - Explicación:
- str.chars() convierte el string en un stream de códigos de caracteres (int).
- String.format(«%02X», ch) formatea cada carácter como un código hexadecimal de 2 dígitos.
- Collectors.joining() concatena los valores formateados en un string.
5. ¿Cuál es la salida del siguiente código?
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
int result = numbers.stream()
.reduce(1, (a, b) -> a * b);
System.out.println(result);
- Respuesta Correcta:
120 - Explicación:
- reduce(1, (a, b) -> a * b) multiplica los elementos del stream acumulativamente, comenzando con 1.
- 1×2×3×4×5=1201 \times 2 \times 3 \times 4 \times 5 = 1201×2×3×4×5=120.
6. ¿Cuál es el resultado de Math.floorMod(-15, 4)?
- Respuesta Correcta:
1 - Explicación:
- Math.floorMod(a, b) devuelve el residuo de la división entera de a entre b, pero siempre positivo.
- Para −15 % 4-15\ \%\ 4−15 % 4, el residuo es −3-3−3, y floorMod lo ajusta a positivo, dando 1.
7. ¿Qué método se usa para obtener un stream paralelo a partir de una colección en Java?
- Respuesta Correcta:
parallelStream() - Explicación:
- parallelStream() crea un stream que permite la ejecución de operaciones en paralelo.
8. ¿Qué imprimirá el siguiente código?
int x = 10;
System.out.println(x++ + ++x – –x);
- Respuesta Correcta:
12 - Explicación:
- Paso a paso:
- x++ usa el valor actual de x (10) y luego lo incrementa a 11.
- ++x incrementa primero (a 12) y luego usa ese valor.
- –x decrementa a 11.
- Cálculo: 10+12−11=1210 + 12 – 11 = 1210+12−11=12.
- Paso a paso:
9. ¿Qué interfaz funcional se utiliza para representar una operación que no acepta argumentos y devuelve un resultado?
- Respuesta Correcta:
Supplier - Explicación:
- Supplier<T> es una interfaz funcional que representa una función sin argumentos que devuelve un valor de tipo T.
10. ¿Cuál es el resultado de la siguiente operación?
(1 << 4) | (1 << 2) ^ (1 << 1)
- Respuesta Correcta:
20 - Explicación:
- Paso a paso:
- 1 << 4 (desplazamiento a la izquierda) es 24=162^4 = 1624=16.
- 1 << 2 es 22=42^2 = 422=4.
- 1 << 1 es 21=22^1 = 221=2.
- 4 ^ 2 (XOR) da 6.
- 16 | 6 (OR) da 20.
- Paso a paso: