MST

星途 面试题库

面试题:Java Stream flatMap在复杂对象集合处理中的应用

假设有一个类`Student`,包含`String`类型的`name`和`List<String>`类型的`hobbies`属性。现有一个`List<Student>`集合,要求使用`flatMap`方法将所有学生的爱好提取出来,组成一个不重复的`Set<String>`集合,写出实现代码。
33.8万 热度难度
编程语言Java

知识考点

AI 面试

面试题答案

一键面试
import java.util.*;
import java.util.stream.Collectors;

class Student {
    private String name;
    private List<String> hobbies;

    public Student(String name, List<String> hobbies) {
        this.name = name;
        this.hobbies = hobbies;
    }

    public List<String> getHobbies() {
        return hobbies;
    }
}

public class Main {
    public static void main(String[] args) {
        List<Student> students = Arrays.asList(
                new Student("Alice", Arrays.asList("reading", "swimming")),
                new Student("Bob", Arrays.asList("swimming", "painting"))
        );

        Set<String> uniqueHobbies = students.stream()
               .flatMap(student -> student.getHobbies().stream())
               .collect(Collectors.toSet());

        System.out.println(uniqueHobbies);
    }
}