Java 8引入了Stream API,可以方便地对集合进行操作。根据条件遍历列表并添加到映射可以通过Stream的filter和collect方法来实现。
首先,我们需要创建一个列表,并定义一个条件。假设我们有一个Person类,其中包含name和age属性,我们想要根据年龄大于等于18岁的人来创建一个映射,其中键是姓名,值是年龄。
import java.util.*;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<Person> personList = Arrays.asList(
new Person("Alice", 20),
new Person("Bob", 25),
new Person("Charlie", 17),
new Person("David", 30)
);
Map<String, Integer> resultMap = personList.stream()
.filter(person -> person.getAge() >= 18) // 根据条件过滤
.collect(Collectors.toMap(Person::getName, Person::getAge)); // 创建映射
System.out.println(resultMap);
}
}
class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
输出结果为:
{Alice=20, Bob=25, David=30}
在上述代码中,我们使用了Stream的filter方法来过滤出年龄大于等于18岁的人,然后使用collect方法将过滤后的结果收集到一个映射中。在collect方法中,我们使用了Collectors.toMap方法来创建映射,其中Person::getName作为键,Person::getAge作为值。
推荐的腾讯云相关产品:腾讯云云服务器(https://cloud.tencent.com/product/cvm)
领取专属 10元无门槛券
手把手带您无忧上云