Java – Nivel 3 – Test 9

Java – Nivel 3 – Test 9

Test-9 Java Nivel 3

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


String str = "Hello";
System.out.println(str.chars().mapToObj(ch -> (char)ch).sorted(Comparator.reverseOrder()).collect(Collectors.joining()));

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


(15 & 9) ^ (8 | 1)

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


List words = Arrays.asList("apple", "banana", "cherry");
Map<Integer, List> result = words.stream()
                     .collect(Collectors.groupingBy(String::length));
System.out.println(result);

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


IntStream.rangeClosed(1, 5).mapToObj(i -> i * i).collect(Collectors.toCollection(LinkedHashSet::new))

¿Cuál es el resultado de Math.log(Math.exp(2)) + Math.cos(Math.PI)?

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

¿Qué método se usa para crear una copia de un array en Java?

¿Qué interfaz funcional se utiliza para representar una operación que acepta dos argumentos y no devuelve ningún resultado?

¿Qué imprimirá el siguiente código?


int a = 10, b = 5;
System.out.println((a++ > 10 ? b-- : ++b) + a);

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

Tests similares

Respuestas:


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

List words = Arrays.asList(«apple», «banana», «cherry»);

Map<Integer, List> result = words.stream()

                     .collect(Collectors.groupingBy(String::length));

System.out.println(result);

  • Respuesta Correcta:
    {5=[apple], 6=[banana, cherry]}
  • Explicación:
    • El método groupingBy(String::length) agrupa las palabras según su longitud:
      • Longitud 555: [apple].
      • Longitud 666: [banana, cherry].
    • Resultado: un mapa con claves que representan las longitudes y valores que son listas de palabras con esa longitud.

2. ¿Qué interfaz funcional se utiliza para representar una operación que acepta dos argumentos y no devuelve ningún resultado?

  • Respuesta Correcta:
    BiConsumer
  • Explicación:
    • BiConsumer<T, U> define una operación que toma dos argumentos TTT y UUU y no devuelve un resultado. Es útil para operaciones como agregar elementos a estructuras de datos.

3. ¿Qué hace el método distinct() en un Stream?

  • Respuesta Correcta:
    Elimina elementos duplicados del stream
  • Explicación:
    • El método distinct() utiliza la igualdad definida por equals() para eliminar duplicados en un flujo de datos.

4. ¿Qué método se usa para crear una copia de un array en Java?

  • Respuesta Correcta:
    Arrays.copyOf()
  • Explicación:
    • Arrays.copyOf() crea una nueva copia de un array con la longitud especificada. Es simple y eficiente.

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

int a = 10, b = 5;

System.out.println((a++ > 10 ? b– : ++b) + a);

  • Respuesta Correcta:
    17
  • Explicación:
    • a++ > 10: 10>1010 > 1010>10 es falso, por lo que se evalúa ++b, incrementando bbb a 666.
    • Luego de la operación ternaria, a=11a = 11a=11 debido al post-incremento.
    • Resultado: 6+11=176 + 11 = 176+11=17.

6. ¿Qué hace el método computeIfPresent() en un Map?

  • Respuesta Correcta:
    Calcula un nuevo valor si la clave existe
  • Explicación:
    • computeIfPresent() aplica una función a la clave existente para calcular un nuevo valor y lo actualiza en el mapa.

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

(15 & 9) ^ (8 | 1)

  • Respuesta Correcta:
    6
  • Explicación:
    • 15=111115 = 111115=1111, 9=10019 = 10019=1001, 8=10008 = 10008=1000, 1=00011 = 00011=0001.
    • 15&9=1001=915 \& 9 = 1001 = 915&9=1001=9.
    • 8∣1=1001=98 | 1 = 1001 = 98∣1=1001=9.
    • 9⊕9=0110=69 \oplus 9 = 0110 = 69⊕9=0110=6.

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

String str = «Hello»;

System.out.println(str.chars().mapToObj(ch -> (char)ch).sorted(Comparator.reverseOrder()).collect(Collectors.joining()));

  • Respuesta Correcta:
    ollHe
  • Explicación:
    • str.chars() convierte la cadena en un flujo de códigos Unicode.
    • mapToObj(ch -> (char)ch) convierte cada código Unicode en un carácter.
    • sorted(Comparator.reverseOrder()) ordena los caracteres en orden inverso: o,l,l,H,eo, l, l, H, eo,l,l,H,e.
    • Collectors.joining() concatena los caracteres en una cadena: ollHe.

9. ¿Cuál es el resultado de Math.log(Math.exp(2)) + Math.cos(Math.PI)?

  • Respuesta Correcta:
    1
  • Explicación:
    • Math.log(Math.exp(2))=2Math.log(Math.exp(2)) = 2Math.log(Math.exp(2))=2, porque el logaritmo natural y la exponencial son operaciones inversas.
    • Math.cos(Math.PI)=−1Math.cos(Math.PI) = -1Math.cos(Math.PI)=−1, porque el coseno de 180°180°180° es −1-1−1.
    • Resultado: 2+(−1)=12 + (-1) = 12+(−1)=1.

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

IntStream.rangeClosed(1, 5).mapToObj(i -> i * i).collect(Collectors.toCollection(LinkedHashSet::new));

  • Respuesta Correcta:
    {1, 4, 9, 16, 25}
  • Explicación:
    • IntStream.rangeClosed(1, 5) genera los números del 1 al 5: [1,2,3,4,5][1, 2, 3, 4, 5][1,2,3,4,5].
    • mapToObj(i -> i * i) transforma cada número en su cuadrado: [1,4,9,16,25][1, 4, 9, 16, 25][1,4,9,16,25].
    • Collectors.toCollection(LinkedHashSet::new) almacena los resultados en un LinkedHashSet, que conserva el orden de inserción.
    • Resultado: {1, 4, 9, 16, 25}.

Deja un comentario