My goal: Take a LinkedList of Users and extract a LinkedList of their usernames in an elegant, Java-8 way.
public static void main(String[] args) { LinkedList<User> users = new LinkedList<>(); users.add(new User(1, "User1")); users.add(new User(2, "User2")); users.add(new User(3, "User3")); // Vanilla Java approach LinkedList<String> usernames = new LinkedList<>(); for(User user : users) { System.out.println(user.getUsername()); usernames.add(user.getUsername()); } System.out.println("Usernames = " + usernames.toString()); // Java 8 approach users.forEach((user) -> System.out.println(user.getUsername())); LinkedList<String> usernames2 = users.stream().map(User::getUsername). // Is there a way to turn this map into a LinkedList? System.out.println("Usernames = " + usernames2.toString()); } static class User { int id; String username; public User() { } public User(int id, String username) { this.id = id; this.username = username; } public void setUsername(String username) { this.username = username; } public void setId(int id) { this.id = id; } public String getUsername() { return username; } public int getId() { return id; } } I am stuck trying to convert the Stream object into a LinkedList. I could turn it into an array (Stream::toArray()) and turn that into a List (Arrays.asList(Stream::toArray())) but that just seems so... no thank you.
Am I missing something?
Using List. stream() method: Java List interface provides stream() method which returns a sequential Stream with this collection as its source. Algorithm: Get the Stream.
This class has the toList() method, which converts the Stream to a List.
Introduction. A linked list is a data structure where one object refers to the next one in a sequence by storing its address. Each object is referred to as a node. In addition to a reference to the next object in the sequence, each object carries some data (e.g., integer value, reference to string, etc.).
You can use a Collector like this to put the result into a LinkedList:
LinkedList<String> usernames2 = users.stream() .map(User::getUsername) .collect(Collectors.toCollection(LinkedList::new));
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With