Java – Nivel 3 – Test 9

Java – Nivel 3 – Test 9

Test-9 Java Nivel 3

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

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

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

¿Qué imprimirá el siguiente código?


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

¿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 la siguiente operación?


(15 & 9) ^ (8 | 1)

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

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

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

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

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