Java 通过流按键排序的集合
我有一个简单的类,有三个值:Java 通过流按键排序的集合,java,java-8,java-stream,Java,Java 8,Java Stream,我有一个简单的类,有三个值: class Book{ private String title; private String author; private double price; } 标题是唯一的(始终)。系统中有一个选定标题列表(如list)和每本书籍的列表。我想从标题列表中获取所有带有键的书籍。我的代码是: List<Book> allBooks = getAllBooks(); List<String> selectedTitles =
class Book{
private String title;
private String author;
private double price;
}
标题
是唯一的(始终)。系统中有一个选定标题列表(如list
)和每本书籍的列表。我想从标题列表中获取所有带有键的书籍
。我的代码是:
List<Book> allBooks = getAllBooks();
List<String> selectedTitles = getSelectedTitles();
List<Book> selectedBooks = allBooks.stream().
filter(x -> selectedTitles.contains(x.getTitle())).
collect(Collectors.toList());
(通过stream()
如何通过selectedTitles
?)进行排序(在本例中,它应该是{“B”、“D”、“A”}
?不要排序,只需查找已选择的书籍:
List<Book> allBooks = getAllBooks();
List<String> selectedTitles = getSelectedTitles();
Map<String,Book> titleToBook = allBooks.stream()
.collect(Collectors.toMap(Book::getTitle, Function.identity()));
List<Book> selectedBooks = selectedTitles.stream()
.map(titleToBook::get).filter(Objects::nonNull)
.collect(Collectors.toList());
List allBooks=getAllBooks();
List selectedTitles=getSelectedTitles();
Map titleToBook=allBooks.stream()
.collect(Collectors.toMap(Book::getTitle,Function.identity());
List selectedBooks=selectedTitles.stream()
.map(titleToBook::get).filter(对象::非空)
.collect(Collectors.toList());
List<Book> allBooks = getAllBooks();
List<String> selectedTitles = getSelectedTitles();
Map<String,Book> titleToBook = allBooks.stream()
.collect(Collectors.toMap(Book::getTitle, Function.identity()));
List<Book> selectedBooks = selectedTitles.stream()
.map(titleToBook::get).filter(Objects::nonNull)
.collect(Collectors.toList());