Converteer stream naar lijst in Java
Deze tutorial introduceert de conversie van de Stream
naar een lijst in Java.
Een Stream is een verzameling objecten. Een Stream slaat geen gegevens op en is daarom geen gegevensstructuur.
De Stream
is toegevoegd aan de Java 8-versie, terwijl een lijst een interface is die geordende collecties opslaat. In deze tutorial zullen we kijken naar het converteren van een stream naar een lijst.
Java heeft de volgende manieren om onze taak te volbrengen:
- Converteren met
collect()
methode - Converteren met
toCollection()
methode - Converteren met
forEach()
methode - Converteren met
toArray()
methode
Converteer stream naar lijst met behulp van de collect()
Methode in Java
De Stroom collect()
operatie is een terminal operatie. Een terminalbewerking betekent dat de Stream wordt verbruikt en na deze bewerking niet verder kan worden gebruikt.
De syntaxis van deze methode is:
collect(Collector<? super T,A,R> collector)
Deze methode kost een Collector
object als argument.
De klasse Collector wordt gebruikt om de elementen van de Stream in een verzameling te verzamelen. Deze klasse heeft de toList()
methode, die de stream naar een lijst converteert.
Laten we nu naar een codevoorbeeld kijken:
import java.util.*;
import java.util.stream.Stream;
import java.util.stream.Collectors;
public class SimpleTesting {
public static void main(String args[]) {
// declaring a stream
Stream<String> furnitures = Stream.of("chair", "dinning table", "study table", "coffee table", "sofa");
// changing stream to list
List<String> furniture_list = furnitures.collect(Collectors.toList());
//printing the list
for(String furniture: furniture_list){
System.out.println(furniture);
}
}
}
Uitgang:
chair
dinning table
study table
coffee table
sofa
Converteer stream naar lijst met toCollection()
Methode in Java
Dit voorbeeld is vergelijkbaar met het vorige, behalve dat we de Collector.toList()
. hebben gebruikt methode in plaats van de Collectors.toCollection()
methode.
De Collector
klasse heeft een methode genaamd toCollection()
die een Collector
. retourneert die de invoeritems verzamelt in een nieuwe verzameling in de volgorde waarin ze zijn aangetroffen. Bekijk de voorbeeldcode hieronder:
import java.util.*;
import java.util.stream.Stream;
import java.util.stream.Collectors;
public class SimpleTesting {
public static void main(String args[]) {
// declaring a stream
Stream<String> furnitures = Stream.of("chair", "dinning table", "study table", "coffee table", "sofa");
// changing stream to list
List<String> furniture_list = furnitures.collect(Collectors.toCollection(ArrayList::new));
//printing the list
for(String furniture: furniture_list){
System.out.println(furniture);
}
}
}
Uitgang:
chair
dinning table
study table
coffee table
sofa
Converteer stream naar lijst met forEach()
Methode in Java
In dit voorbeeld hebben we eerst een lege ArrayList gemaakt en vervolgens de forEach()
. gebruikt methode om elk Stream-element één voor één aan de lijst toe te voegen. De Stream
heeft een methode genaamd forEach()
die presteert op alle elementen van de invoerstroom.
Bekijk de voorbeeldcode hieronder:
import java.util.*;
import java.util.stream.Stream;
import java.util.stream.Collectors;
public class SimpleTesting {
public static void main(String args[]) {
// declaring a stream
Stream<String> furnitures = Stream.of("chair", "dinning table", "study table", "coffee table", "sofa");
// declaring an empty arraylist
ArrayList<String> furniture_list = new ArrayList<>();
// adding elements one by one
furnitures.forEach(furniture_list::add);
//printing the list
for(String furniture: furniture_list){
System.out.println(furniture);
}
}
}
Uitgang:
chair
dinning table
study table
coffee table
sofa
Converteer stream naar lijst met toArray()
Methode in Java
In dit voorbeeld hebben we eerst de Stream
. geconverteerd in een array met behulp van de toArray()
methode. Hierna hebben we de nieuw gemaakte array geconverteerd naar een lijst met behulp van de asList()
methode om een lijst te krijgen.
Bekijk de onderstaande code:
import java.util.*;
import java.util.stream.Stream;
import java.util.stream.Collectors;
public class SimpleTesting {
public static void main(String args[]) {
// declaring a stream
Stream<String> furnitures = Stream.of("chair", "dinning table", "study table", "coffee table", "sofa");
// converting stream to array
String[] furniture_array = furnitures.toArray(String[]::new);
// converting array to list
List<String> furniture_list = Arrays.asList(furniture_array);
//printing the list
for(String furniture: furniture_list){
System.out.println(furniture);
}
}
}
Uitgang:
chair
dinning table
study table
coffee table
sofa