Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Práctica con Stream API | Características y Técnicas Avanzadas de Java
Practice
Projects
Quizzes & Challenges
Quizzes
Challenges
/
Estructuras de Datos en Java

bookPráctica con Stream API

Es momento de practicar con Stream API. Tienes algunas tareas sencillas que implican el uso de diversos métodos de Stream API. Esta vez, no se proporcionarán tareas específicas. En su lugar, se te dará una lista con la que trabajar y cuál debe ser el resultado esperado. En otras palabras, tu objetivo es realizar operaciones sobre la lista para lograr el resultado esperado.

Este tipo de ejercicio puede ayudarte a desarrollar la habilidad de alcanzar resultados sin una especificación clara. Solo verás los datos de entrada y el resultado esperado.

¡Debes utilizar Stream API para completar estas tareas!

Tarea 1:

Entrada:

Main.java

Main.java

copy
1234567891011
package com.example; import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) { List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5); // Write your code here } }

Utilizar la Stream API para elevar al cuadrado cada número de la lista y recopilar el resultado en una nueva lista. Salida esperada:

[1, 4, 9, 16, 25]

Utilizar los métodos map() y toList() en este caso.

package com.example;

import java.util.Arrays;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
        List<Integer> result = numbers.stream().map(e -> e * e).toList();
        System.out.println(result);
        // Write your code here
    }
}

Tarea 2:

Entrada:

Main.java

Main.java

copy
1234567891011
package com.example; import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) { List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "David", "Eva"); // Write your code here } }

Utilizar Stream API para encontrar la longitud del nombre más largo en la lista. Salida esperada:

7

Utilizar los métodos intermedios map() y max(), y el método terminal get().

package com.example;

import java.util.Arrays;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "David", "Eva");
        Integer result = names
                .stream()
                .map(e -> e.length())
                .max((integer, newInteger) -> Integer.compare(integer, newInteger))
                .get();
        System.out.println(result);
        // Write your code here
    }
}

Tarea 3

Entrada:

Main.java

Main.java

copy
123456789101112131415
package com.example; import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) { List<String> sentences = Arrays.asList( "Java Stream API provides a fluent interface for processing sequences of elements.", "It supports functional-style operations on streams of elements, such as map-reduce transformations.", "In this exercise, you need to count the total number of words in all sentences." ); // Write your code here } }

Utilizar Stream API para contar el número total de palabras distintas (sin distinguir mayúsculas de minúsculas) en todas las oraciones. Salida esperada:

37

Utilizar los métodos intermedios flatMap() y distinct(), y el método terminal count().

package com.example;

import java.util.Arrays;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        List<String> sentences = Arrays.asList(
                "Java Stream API provides a fluent interface for processing sequences of elements.",
                "It supports functional-style operations on streams of elements, such as map-reduce transformations.",
                "In this exercise, you need to count the total number of words in all sentences."
        );
        long count = sentences.stream()
                .flatMap(e -> Arrays.stream(e.split(" ")))
                .distinct()
                .count();
        System.out.println(count);
        // Write your code here
    }
}

Tarea 4:

Entrada:

Main.java

Main.java

copy
1234567891011
package com.example; import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) { List<String> words = Arrays.asList("apple", "banana", "cherry", "date", "elderberry"); // Write your code here } }

Utilizar Stream API para encontrar la concatenación de las dos primeras palabras que tengan longitudes pares.

Salida esperada:

bananacherry

Utilizar los métodos intermedios filter() y limit(), y el método terminal collect().

package com.example;

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class Main {
    public static void main(String[] args) {
        List<String> words = Arrays.asList("apple", "banana", "cherry", "date", "elderberry");
        String result = words.stream()
                .filter(e -> e.length() % 2 == 0)
                .limit(2)
                .collect(Collectors.joining());
        System.out.println(result);
        // Write your code here
    }
}

Tarea 5:

Entrada:

Main.java

Main.java

copy
1234567891011
package com.example; import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) { List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); // Write your code here } }

Utilizar Stream API para encontrar la suma de los cuadrados de los números pares en la lista.

Salida esperada:

220

Utilizar los métodos intermedios mapToInt() y filter(), y el método terminal sum().

package com.example;

import java.util.Arrays;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
        int sum = numbers.stream()
                .mapToInt(e -> e * e)
                .filter(e -> e % 2 == 0)
                .sum();
        System.out.println(sum);
        // Write your code here
    }
}

¡Buen trabajo!

Si has completado todas las tareas, ¡felicitaciones!

Algunos métodos en las tareas pueden no haberse cubierto previamente. Para explorarlos, abre IntelliJ IDEA y verifica su funcionalidad.

La programación implica aprendizaje continuo, por lo que es recomendable explorar nuevas soluciones, buscar en línea y consultar la documentación cuando sea necesario.

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 4. Capítulo 5

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

Suggested prompts:

Can you explain how the Stream API works in these examples?

What are some other common Stream API methods I should know?

Can you give me more practice tasks like these?

bookPráctica con Stream API

Desliza para mostrar el menú

Es momento de practicar con Stream API. Tienes algunas tareas sencillas que implican el uso de diversos métodos de Stream API. Esta vez, no se proporcionarán tareas específicas. En su lugar, se te dará una lista con la que trabajar y cuál debe ser el resultado esperado. En otras palabras, tu objetivo es realizar operaciones sobre la lista para lograr el resultado esperado.

Este tipo de ejercicio puede ayudarte a desarrollar la habilidad de alcanzar resultados sin una especificación clara. Solo verás los datos de entrada y el resultado esperado.

¡Debes utilizar Stream API para completar estas tareas!

Tarea 1:

Entrada:

Main.java

Main.java

copy
1234567891011
package com.example; import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) { List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5); // Write your code here } }

Utilizar la Stream API para elevar al cuadrado cada número de la lista y recopilar el resultado en una nueva lista. Salida esperada:

[1, 4, 9, 16, 25]

Utilizar los métodos map() y toList() en este caso.

package com.example;

import java.util.Arrays;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
        List<Integer> result = numbers.stream().map(e -> e * e).toList();
        System.out.println(result);
        // Write your code here
    }
}

Tarea 2:

Entrada:

Main.java

Main.java

copy
1234567891011
package com.example; import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) { List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "David", "Eva"); // Write your code here } }

Utilizar Stream API para encontrar la longitud del nombre más largo en la lista. Salida esperada:

7

Utilizar los métodos intermedios map() y max(), y el método terminal get().

package com.example;

import java.util.Arrays;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "David", "Eva");
        Integer result = names
                .stream()
                .map(e -> e.length())
                .max((integer, newInteger) -> Integer.compare(integer, newInteger))
                .get();
        System.out.println(result);
        // Write your code here
    }
}

Tarea 3

Entrada:

Main.java

Main.java

copy
123456789101112131415
package com.example; import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) { List<String> sentences = Arrays.asList( "Java Stream API provides a fluent interface for processing sequences of elements.", "It supports functional-style operations on streams of elements, such as map-reduce transformations.", "In this exercise, you need to count the total number of words in all sentences." ); // Write your code here } }

Utilizar Stream API para contar el número total de palabras distintas (sin distinguir mayúsculas de minúsculas) en todas las oraciones. Salida esperada:

37

Utilizar los métodos intermedios flatMap() y distinct(), y el método terminal count().

package com.example;

import java.util.Arrays;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        List<String> sentences = Arrays.asList(
                "Java Stream API provides a fluent interface for processing sequences of elements.",
                "It supports functional-style operations on streams of elements, such as map-reduce transformations.",
                "In this exercise, you need to count the total number of words in all sentences."
        );
        long count = sentences.stream()
                .flatMap(e -> Arrays.stream(e.split(" ")))
                .distinct()
                .count();
        System.out.println(count);
        // Write your code here
    }
}

Tarea 4:

Entrada:

Main.java

Main.java

copy
1234567891011
package com.example; import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) { List<String> words = Arrays.asList("apple", "banana", "cherry", "date", "elderberry"); // Write your code here } }

Utilizar Stream API para encontrar la concatenación de las dos primeras palabras que tengan longitudes pares.

Salida esperada:

bananacherry

Utilizar los métodos intermedios filter() y limit(), y el método terminal collect().

package com.example;

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class Main {
    public static void main(String[] args) {
        List<String> words = Arrays.asList("apple", "banana", "cherry", "date", "elderberry");
        String result = words.stream()
                .filter(e -> e.length() % 2 == 0)
                .limit(2)
                .collect(Collectors.joining());
        System.out.println(result);
        // Write your code here
    }
}

Tarea 5:

Entrada:

Main.java

Main.java

copy
1234567891011
package com.example; import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) { List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); // Write your code here } }

Utilizar Stream API para encontrar la suma de los cuadrados de los números pares en la lista.

Salida esperada:

220

Utilizar los métodos intermedios mapToInt() y filter(), y el método terminal sum().

package com.example;

import java.util.Arrays;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
        int sum = numbers.stream()
                .mapToInt(e -> e * e)
                .filter(e -> e % 2 == 0)
                .sum();
        System.out.println(sum);
        // Write your code here
    }
}

¡Buen trabajo!

Si has completado todas las tareas, ¡felicitaciones!

Algunos métodos en las tareas pueden no haberse cubierto previamente. Para explorarlos, abre IntelliJ IDEA y verifica su funcionalidad.

La programación implica aprendizaje continuo, por lo que es recomendable explorar nuevas soluciones, buscar en línea y consultar la documentación cuando sea necesario.

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 4. Capítulo 5
some-alt