Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Java8中从流中收集自定义类对象?_Java_Java 8_Java Stream - Fatal编程技术网

如何在Java8中从流中收集自定义类对象?

如何在Java8中从流中收集自定义类对象?,java,java-8,java-stream,Java,Java 8,Java Stream,我有一张地图抽认卡。Flashcard类包含两个字段:字符串术语和字符串定义。当我必须从flashcard中查找特定的flashcard时,我如何通过Java8流进行查找?如何收集Flashcard对象或仅包含术语的定义字段 例如: private static String getWrongAnswerMessage(Map<Flashcard, FlashcardStats> flashcards, String term, String answer) { Flashcard

我有一张地图抽认卡。Flashcard类包含两个字段:字符串术语和字符串定义。当我必须从flashcard中查找特定的flashcard时,我如何通过Java8流进行查找?如何收集Flashcard对象或仅包含术语的定义字段

例如:

private static String getWrongAnswerMessage(Map<Flashcard, FlashcardStats> flashcards, String term, String answer) {

Flashcard flashcard = flashcards.keySet().stream().filter(o -> o.getTerm().equals(term)).collect() //what now
私有静态字符串GetErrorAnswerMessage(映射抽认卡、字符串术语、字符串答案){
Flashcard Flashcard=flashcards.keySet().stream().filter(o->o.getTerm().equals(term)).collect()//现在怎么办

假设一个加工结果

Optional term=flashcards.keySet()
.stream()
.filter(o->o.getTerm().equals(术语))
.map(Flashcard::getTerm)
.findFirst();

是否可能有多张同名的
闪卡?也许你只需要
findFirst
findAny
就可以了,而且根本没有收集器。不可能有两张闪卡具有相同的术语或定义。我会试试这个。谢谢@michalk,它可以:)谢谢你,在你的解决方案中,它应该是Op但是它是有效的:)@fisherman先生谢谢你指出错误,我已经更新了答案