gpt4 book ai didi

java - 返回对象集的方法,想要存储为字符串列表

转载 作者:行者123 更新时间:2023-12-02 12:18:01 25 4
gpt4 key购买 nike

我有两个类(class),StudentBook 。我想存储 student.getBook(that will return Set<Book>) 返回的书名进入List<String> .

Student.java

public class Student {
private int id;
private String bookName;
//Setter and getter.......
}

Student.java

public class Student {
private int id;
private String student Name;
private Set<Book> books;
//Setters and Getters
}

这是主要方法

public static void main(String[] arg){
Book b1= new Book(1, "art");
Book b2= new Book(2, "science");
Book b3= new Book(3, "bio");
Set<Book> b=new HashSet<>();
b.add(b1);
b.add(b2);
b.add(b3);
Student s=new Student (1, "std1",b);
//here I want to store bookName
//into List, some thing like
List<String> book=new
ArrayList<>(s.getBooks().getBookName());
}

请帮忙......

最佳答案

这就是 Stream API 派上用场的地方!

将一套书(s.getBooks())直接变成List<String>有了书名,你只需 mapcollect .

List<String> bookNames = s.getBooks().stream()
.map(x -> x.getBookName())
.collect(Collectors.toList())

这对您来说可能看起来很陌生,所以我会一点一点解释它。

stream方法创建一个 Stream<Book> 。这样您就可以执行很酷的操作,例如 map , reducefilter关于Set 。那我们map书的流。 map只是“转变”的另一个词。因为您只需要书名,所以我们将流中的每本书转换为其书名。 x -> x.getBookName()描述了我们想要如何改造它。它的意思是“给定一本书 x ,我们得到书名 x ”。最后,我们调用collect ,它“收集”流中的所有内容并将它们放回集合中。在这种情况下,我们想要一个 List所以我们打电话toList() .

关于java - 返回对象集的方法,想要存储为字符串列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46011477/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com