【MapSheep】
[好记性不如烂笔头]
package com.example.demo.test01;

import com.alibaba.fastjson.JSON;
import lombok.Data;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;

public class StreamTest {
    public static void main(String[] args) {
        System.out.println("---------->存储的图书信息: ");
        System.out.println(JSON.toJSON(initInfo()));
        System.out.println();

        System.out.println("---------->测试map方法:");
        testMap();
        System.out.println();

        System.out.println("---------->测试flatMap方法:");
        testFlatMap();
        System.out.println();
    }

    private static void testMap() {
        List<List<Book>> listList = initInfo().stream()
                .map(Library::getBook)
                .collect(Collectors.toList());
        System.out.println(JSON.toJSON(listList));
    }

    private static void testFlatMap() {
        List<Book> listList = initInfo().stream()
                .flatMap(library -> library.getBook().stream())
                .collect(Collectors.toList());
        System.out.println(JSON.toJSON(listList));

    }

    public static List<Library> initInfo() {
        Library library1 = new Library("新华图书", null);
        Library library2 = new Library("大家图书", null);
        Library library3 = new Library("瀚海图书", null);

        Book book1 = new Book("西游记", "吴承恩", 49);
        Book book2 = new Book("水浒传", "施耐庵", 57);
        Book book3 = new Book("三国演义", "罗贯中", 52);
        Book book4 = new Book("朝花夕拾", "鲁迅", 30);

        List<Book> library1Book = new ArrayList<>();
        Collections.addAll(library1Book, book1, book2);
        library1.setBook(library1Book);

        List<Book> library2Book = new ArrayList<>();
        Collections.addAll(library2Book, book2, book3);
        library2.setBook(library2Book);

        List<Book> library3Book = new ArrayList<>();
        Collections.addAll(library3Book, book3, book4);
        library3.setBook(library3Book);

        return new ArrayList<>(Arrays.asList(library1, library2, library3));
    }
}

@Data
class Library {
    private String name;
    private List<Book> book;

    public Library(String name, List<Book> book) {
        this.name = name;
        this.book = book;
    }
}

@Data
class Book {
    private String name;
    private String author;
    private Integer price;

    public Book(String name, String author, Integer price) {
        this.name = name;
        this.author = author;
        this.price = price;
    }
}
posted on 2025-07-14 10:19  (Play)  阅读(16)  评论(0)    收藏  举报