Java – Nivel 3 – Test 8

Java – Nivel 3 – Test 8

Test-8 Java Nivel 3

¿Qué imprimirá el siguiente código?


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

¿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()));

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

¿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é método se usa para crear una vista sincronizada de un Set en Java?

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

¿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));

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


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

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

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

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