EN
Java 8 - find element in List
0
points
In this article, we would like to show you how to find an element in List in Java 8.
In this approach we're gonna:
- invoke
stream()on the list, - call
collect()method withCollector.toList()that collects all Stream elements into a List instance.
Practical example
In this example, we use Java 8 Stream API to find the first occurrence of User named Tom in the List.
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class Example {
public static void main(String[] args) throws IOException {
// Create list of users --------------------
List<User> users = new ArrayList<>(Arrays.asList(
new User("Tom", 20),
new User("Kate", 21),
new User("Ann", 22)
));
// find an element in List --------------------
List<User> foundUsers = users.stream()
.filter(user -> "Tom".equals(user.getName()))
.collect(Collectors.toList());
System.out.println(foundUsers);
}
}
Output:
User{ name='Tom', age=20 }
Note:
We create new list -
foundUsersto collect the result in case there are many users namedTom.
Note:
In the section below you can find the implementation of the User class
User class
User.java:
public class User {
private final String name;
private final int age;
public User(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
@Override
public String toString() {
return "User{ " +
"name='" + name + '\'' +
", age=" + age +
" }";
}
}