Java – Nivel 3 – Test 8

Java – Nivel 3 – Test 8

Test-8 Java Nivel 3

¿Cuál es la salida del siguiente código?


List numbers = Arrays.asList(1, 2, 3, 4, 5);
Optional result = numbers.stream()
                     .filter(n -> n % 2 == 0)
                     .reduce((a, b) -> a + b);
System.out.println(result.orElse(0));

¿Qué imprimirá el siguiente código?


int x = 5;
System.out.println((x++ + ++x) + (--x - x--));

¿Qué método se usa para crear una vista sincronizada de un Set en Java?

¿Cuál es el resultado de la siguiente expresión?


Stream.of("a", "bb", "ccc").collect(Collectors.toMap(String::length, Function.identity(), (s1, s2) -> s1 + s2))

¿Qué hace el método putIfAbsent() en un Map?

¿Cuál es el resultado de la siguiente operación?


(~5 & 6) ^ (4 | 3)

¿Cuál es la salida del siguiente código?


String str = "Java";
System.out.println(str.chars().mapToObj(ch -> (char)(ch + 1)).collect(Collectors.joining()));

¿Cuál es el resultado de Math.hypot(3, 4) + Math.signum(-2.5)?

¿Qué hace el método dropWhile() en un Stream?

¿Qué interfaz funcional se utiliza para representar una operación que acepta un objeto de un tipo y produce un resultado de otro tipo?

Tests similares

Respuestas:


1. ¿Qué imprimirá el siguiente código?

int x = 5;

System.out.println((x++ + ++x) + (–x – x–));

  • Respuesta Correcta:
    3
  • Explicación:
    • (x++ + ++x):
      • x++: primero usa 555, luego incrementa x=6x = 6x=6.
      • ++x: incrementa primero x=7x = 7x=7 y luego lo usa.
      • Resultado: 5+7=125 + 7 = 125+7=12.
    • (–x – x–):
      • –x: decrementa x=6x = 6x=6 y lo usa.
      • x–: usa 666, luego decrementa x=5x = 5x=5.
      • Resultado: 6−6=06 – 6 = 06−6=0.
    • 12+0=312 + 0 = 312+0=3.

2. ¿Qué hace el método dropWhile() en un Stream?

  • Respuesta Correcta:
    Elimina elementos mientras la condición sea verdadera
  • Explicación:
    • dropWhile() omite los elementos al inicio del stream que cumplen con la condición especificada. Cuando encuentra un elemento que no cumple, deja de omitir y procesa el resto del stream.

3. ¿Cuál es la salida del siguiente código?

String str = «Java»;

System.out.println(str.chars().mapToObj(ch -> (char)(ch + 1)).collect(Collectors.joining()));

  • Respuesta Correcta:
    Kbwb
  • Explicación:
    • str.chars() convierte el string en un stream de enteros representando los códigos Unicode de cada carácter.
    • (char)(ch + 1) desplaza cada carácter al siguiente en la tabla Unicode:
      • J→KJ \rightarrow KJ→K, a→ba \rightarrow ba→b, v→wv \rightarrow wv→w, a→ba \rightarrow ba→b.
    • Collectors.joining() concatena los caracteres: Kbwb.

4. ¿Cuál es el resultado de la siguiente expresión?

Stream.of(«a», «bb», «ccc»).collect(Collectors.toMap(String::length, Function.identity(), (s1, s2) -> s1 + s2));

  • Respuesta Correcta:
    {1=a, 2=bb, 3=ccc}
  • Explicación:
    • String::length utiliza la longitud como clave del mapa.
    • Function.identity() usa la cadena original como valor.
    • No hay claves duplicadas, por lo que no es necesario resolver conflictos con la función (s1, s2) -> s1 + s2.
    • Resultado: un mapa con las claves 1,2,31, 2, 31,2,3 y los valores correspondientes.

5. ¿Cuál es la salida del siguiente código?

List numbers = Arrays.asList(1, 2, 3, 4, 5);

Optional result = numbers.stream()

                     .filter(n -> n % 2 == 0)

                     .reduce((a, b) -> a + b);

System.out.println(result.orElse(0));

  • Respuesta Correcta:
    6
  • Explicación:
    • El filtro n -> n % 2 == 0 selecciona los números pares: 2,42, 42,4.
    • reduce((a, b) -> a + b) suma los números pares: 2+4=62 + 4 = 62+4=6.
    • Como el Optional contiene un valor, orElse(0) no se utiliza.

6. ¿Cuál es el resultado de la siguiente operación?

(~5 & 6) ^ (4 | 3)

  • Respuesta Correcta:
    7
  • Explicación:
    •  5~5 5: complemento bit a bit de 5=01015 = 01015=0101, da …1010…1010…1010 (en complemento a dos).
    • ~5 & 6: …1010&0110=0010=2…1010 \& 0110 = 0010 = 2…1010&0110=0010=2.
    • 4∣34 | 34∣3: 0100∣0011=0111=70100 | 0011 = 0111 = 70100∣0011=0111=7.
    • 272 ^ 727: 0010⊕0111=0111=70010 \oplus 0111 = 0111 = 70010⊕0111=0111=7.

7. ¿Qué interfaz funcional se utiliza para representar una operación que acepta un objeto de un tipo y produce un resultado de otro tipo?

  • Respuesta Correcta:
    Function
  • Explicación:
    • Function<T, R> define una operación que toma un valor de tipo T y devuelve un resultado de tipo R.

8. ¿Qué método se usa para crear una vista sincronizada de un Set en Java?

  • Respuesta Correcta:
    Collections.synchronizedSet()
  • Explicación:
    • Este método devuelve una vista sincronizada de un Set, permitiendo acceso seguro en entornos multi-hilo.

9. ¿Cuál es el resultado de Math.hypot(3, 4) + Math.signum(-2.5)?

  • Respuesta Correcta:
    5
  • Explicación:
    • Math.hypot(3, 4) calcula la hipotenusa de un triángulo con lados 333 y 444: 32+42=5\sqrt{3^2 + 4^2} = 532+42​=5.
    • Math.signum(-2.5) devuelve el signo de −2.5-2.5−2.5: −1-1−1.
    • 5+(−1)=45 + (-1) = 45+(−1)=4.

10. ¿Qué hace el método putIfAbsent() en un Map?

  • Respuesta Correcta:
    Inserta un valor solo si la clave no existe
  • Explicación:
    • putIfAbsent() verifica si la clave ya está presente en el mapa. Si no lo está, agrega el par clave-valor; de lo contrario, no realiza cambios.

Deja un comentario