Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Elementen Transformeren met de map()-Methode | Intermediaire Bewerkingen in Stream API
Stream-API

bookElementen Transformeren met de map()-Methode

Je bent al bekend met het concept van intermediate operations in de Stream API. Deze operaties transformeren stream-elementen en retourneren een nieuwe stream zonder de originele stream te wijzigen. Een van deze methoden is map().

De map()-methode neemt een Function, die wordt toegepast op elk element in de stream. De resultaten worden verzameld in een nieuwe stream, terwijl de originele stream ongewijzigd blijft:

Stream<T> map(Function<? super T, ? extends R> mapper);
  • T – het type elementen in de oorspronkelijke stream;
  • R – het type elementen in de nieuwe stream (na transformatie).

In wezen geven we een type T door, dat wordt getransformeerd naar type R. Daarom gebruiken we map() wanneer het gegevenstype van een stream moet worden aangepast.

Praktische Toepassing

Stel dat een lijst met prijzen moet worden aangepast door op elke prijs 10% belasting toe te voegen. Dit is een veelvoorkomend scenario bij financiële berekeningen, zoals het toepassen van btw op productprijzen.

Main.java

Main.java

copy
1234567891011121314151617
package com.example; import java.util.List; import java.util.Arrays; public class Main { public static void main(String[] args) { List<Double> prices = Arrays.asList(100.0, 200.0, 50.0); // Apply a 10% tax to each price List<Double> finalPrices = prices.stream() .map(price -> price * 1.1) .toList(); System.out.println(finalPrices); } }

In dit voorbeeld wordt elke prijs in de lijst met 10% verhoogd met behulp van de map()-methode.

Elke waarde wordt vermenigvuldigd met 1,1 om rekening te houden met de belasting en de resultaten worden verzameld in een nieuwe lijst. Deze getransformeerde lijst kan vervolgens worden gebruikt voor verdere berekeningen, zoals het genereren van facturen of financiële rapporten.

Primitief Type

In tegenstelling tot de reguliere map-methode, die een stream van objecten retourneert, geven mapToInt(), mapToLong() en mapToDouble() streams van primitieve types terug, waardoor het geheugengebruik wordt verminderd en de prestaties worden verbeterd.

Praktisch voorbeeld

Het volgende voorbeeld zet een lijst van numerieke strings om in primitieve streams en print de waarden.

Main.java

Main.java

copy
1234567891011121314151617181920212223242526272829303132
package com.example; import java.util.List; import java.util.stream.IntStream; import java.util.stream.LongStream; import java.util.stream.DoubleStream; public class Main { public static void main(String[] args) { List<String> numbers = List.of("10", "20", "30", "40"); // Convert to `IntStream` IntStream intStream = numbers.stream() .mapToInt(Integer::parseInt); System.out.print("IntStream: "); intStream.forEach(n -> System.out.print(n + " ")); System.out.println(); // Convert to `LongStream` LongStream longStream = numbers.stream() .mapToLong(Long::parseLong); System.out.print("LongStream: "); longStream.forEach(n -> System.out.print(n + " ")); System.out.println(); // Convert to `DoubleStream` DoubleStream doubleStream = numbers.stream() .mapToDouble(Double::parseDouble); System.out.print("DoubleStream: "); doubleStream.forEach(n -> System.out.print(n + " ")); } }

Dit voorbeeld verwerkt een lijst van numerieke strings.

Eerst converteert mapToInt() de waarden naar een IntStream, waarbij elk getal als een integer wordt afgedrukt. Vervolgens maakt mapToLong() een LongStream, waarbij dezelfde numerieke waarden behouden blijven maar in het type long. Ten slotte transformeert mapToDouble() de gegevens naar een DoubleStream, waarbij de integers worden omgezet in decimale getallen.

Het gebruik van primitieve streams zorgt voor efficiënte verwerking van numerieke gegevens en voorkomt onnodige objectcreatie.

1. Wat doet de methode map() in de Stream API?

2. Welk type functionele interface moet de methode map() accepteren?

question mark

Wat doet de methode map() in de Stream API?

Select the correct answer

question mark

Welk type functionele interface moet de methode map() accepteren?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 2. Hoofdstuk 1

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

Awesome!

Completion rate improved to 2.33

bookElementen Transformeren met de map()-Methode

Veeg om het menu te tonen

Je bent al bekend met het concept van intermediate operations in de Stream API. Deze operaties transformeren stream-elementen en retourneren een nieuwe stream zonder de originele stream te wijzigen. Een van deze methoden is map().

De map()-methode neemt een Function, die wordt toegepast op elk element in de stream. De resultaten worden verzameld in een nieuwe stream, terwijl de originele stream ongewijzigd blijft:

Stream<T> map(Function<? super T, ? extends R> mapper);
  • T – het type elementen in de oorspronkelijke stream;
  • R – het type elementen in de nieuwe stream (na transformatie).

In wezen geven we een type T door, dat wordt getransformeerd naar type R. Daarom gebruiken we map() wanneer het gegevenstype van een stream moet worden aangepast.

Praktische Toepassing

Stel dat een lijst met prijzen moet worden aangepast door op elke prijs 10% belasting toe te voegen. Dit is een veelvoorkomend scenario bij financiële berekeningen, zoals het toepassen van btw op productprijzen.

Main.java

Main.java

copy
1234567891011121314151617
package com.example; import java.util.List; import java.util.Arrays; public class Main { public static void main(String[] args) { List<Double> prices = Arrays.asList(100.0, 200.0, 50.0); // Apply a 10% tax to each price List<Double> finalPrices = prices.stream() .map(price -> price * 1.1) .toList(); System.out.println(finalPrices); } }

In dit voorbeeld wordt elke prijs in de lijst met 10% verhoogd met behulp van de map()-methode.

Elke waarde wordt vermenigvuldigd met 1,1 om rekening te houden met de belasting en de resultaten worden verzameld in een nieuwe lijst. Deze getransformeerde lijst kan vervolgens worden gebruikt voor verdere berekeningen, zoals het genereren van facturen of financiële rapporten.

Primitief Type

In tegenstelling tot de reguliere map-methode, die een stream van objecten retourneert, geven mapToInt(), mapToLong() en mapToDouble() streams van primitieve types terug, waardoor het geheugengebruik wordt verminderd en de prestaties worden verbeterd.

Praktisch voorbeeld

Het volgende voorbeeld zet een lijst van numerieke strings om in primitieve streams en print de waarden.

Main.java

Main.java

copy
1234567891011121314151617181920212223242526272829303132
package com.example; import java.util.List; import java.util.stream.IntStream; import java.util.stream.LongStream; import java.util.stream.DoubleStream; public class Main { public static void main(String[] args) { List<String> numbers = List.of("10", "20", "30", "40"); // Convert to `IntStream` IntStream intStream = numbers.stream() .mapToInt(Integer::parseInt); System.out.print("IntStream: "); intStream.forEach(n -> System.out.print(n + " ")); System.out.println(); // Convert to `LongStream` LongStream longStream = numbers.stream() .mapToLong(Long::parseLong); System.out.print("LongStream: "); longStream.forEach(n -> System.out.print(n + " ")); System.out.println(); // Convert to `DoubleStream` DoubleStream doubleStream = numbers.stream() .mapToDouble(Double::parseDouble); System.out.print("DoubleStream: "); doubleStream.forEach(n -> System.out.print(n + " ")); } }

Dit voorbeeld verwerkt een lijst van numerieke strings.

Eerst converteert mapToInt() de waarden naar een IntStream, waarbij elk getal als een integer wordt afgedrukt. Vervolgens maakt mapToLong() een LongStream, waarbij dezelfde numerieke waarden behouden blijven maar in het type long. Ten slotte transformeert mapToDouble() de gegevens naar een DoubleStream, waarbij de integers worden omgezet in decimale getallen.

Het gebruik van primitieve streams zorgt voor efficiënte verwerking van numerieke gegevens en voorkomt onnodige objectcreatie.

1. Wat doet de methode map() in de Stream API?

2. Welk type functionele interface moet de methode map() accepteren?

question mark

Wat doet de methode map() in de Stream API?

Select the correct answer

question mark

Welk type functionele interface moet de methode map() accepteren?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 2. Hoofdstuk 1
some-alt