第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Java 8 類數(shù)組數(shù)組的流轉(zhuǎn)換

Java 8 類數(shù)組數(shù)組的流轉(zhuǎn)換

繁花不似錦 2023-06-14 16:42:01
我是 Java 8 的新手。我需要使用以下方法在 Java 8 中創(chuàng)建一個字符串?dāng)?shù)組:我有如下所述的學(xué)校、主題、出版商、書籍的 Pojos -public class School {    private Subject[] subjects;    public Subject[] getSubjects() {         return subjects;    }    public void setSubjects(Subject[] subjects) {         this.subjects = subjects;    }}public class Subject {    private String subjectName;    private String subjectId;    private Publisher publisher;    public String getSubjectName() {        return subjectName;    }    public void setSubjectName(String subjectName) {        this.subjectName = subjectName;    }    public String getSubjectId() {        return subjectId;    }    public void setSubjectId(String subjectId) {        this.subjectId = subjectId;    }    public Publisher getpublisher() {        return publisher;    }    public void setPublisher(Publisher publisher) {        this.publisher = publisher;    }}public class Publisher{    private String name;    private String sinNo;    private Book[] books;    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public String getSinNo() {        return sinNo;    }    public void setSinNo(String sinNo) {        this.sinNo = sinNo;    }    public Book[] getBooks() {        return books;    }    public void setBooks(Book[] books) {        this.books = books;    }}public class Book {    private String bookName;    private String bookId;    public String getBookName() {        return bookName;    }現(xiàn)在我的要求是制作一個數(shù)組,其中包含我擁有的 School 對象中的所有 bookId。舊的 java 代碼下面是必需的代碼public static void main(String[] args) {    List<String> list = new ArrayList<>();    School first = <<School Object>>;    for(Subject sub : first.getSubjects()){        Publisher p = sub.getpublisher();        for(Book b : p.getBooks()) {            list.add(b.getBookId());        }        }    //desired result    String[] bookIds = (String[]) list.toArray();}}這可以使用 Java 8 流、收集器、映射來完成嗎?另外,如果我們只想獲得那些奇數(shù)/偶數(shù)的圖書 ID?
查看完整描述

1 回答

?
慕斯王

TA貢獻(xiàn)1864條經(jīng)驗 獲得超2個贊

是的 - 你需要一個flatMap來實現(xiàn)這個

Stream.of(first.getSubjects())
????.map(Subject::getPublisher)
????.map(Publisher::getBooks)
????.flatMap(Arrays::stream)
????.map(Book::getBookId)
????.collect(Collectors.toList());

如果你想讓它null 安全,你需要添加額外的過濾,比如

List<String>?collect?=?Stream.of(first.getSubjects())
????.map(Subject::getPublisher)
????.filter(Objects::nonNull)?//?filter?all?null?publishers
????.map(Publisher::getBooks)
????.filter(Objects::nonNull)?//?filter?all?null?book?lists
????.flatMap(Arrays::stream)
????.map(Book::getBookId)
????.filter(Objects::nonNull)?//?filter?all?null?book?ids
????.collect(Collectors.toList());


查看完整回答
反對 回復(fù) 2023-06-14
  • 1 回答
  • 0 關(guān)注
  • 202 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號