簡體   English   中英

Java 8 嵌套流過濾

[英]Java 8 Nested Streams Filtering

這是我的課程:

class File {
  String id;
  String name;
  List<Metadata> metadata;
}

class Metadata {
  String key;
  String value;
}

我有一個文件List<File>List<File> ),我想首先按 File 的名稱過濾,然后從Metadata列表中按匹配的鍵和值過濾。

假設,我想返回名稱為“movie.mp4”的文件的id ,其元數據之一應具有key=="genre"value=="Horror"

使用 Java 8 Streams,我可以按 File 的名稱進行過濾,但不確定如何下一級並按匹配的鍵和值進行過濾。

我該怎么做呢?

metadata上調用stream()並測試是否有任何keyvalue符合您的條件。 就像是,

fileList.stream().filter(f -> f.name.equals("movie.mp4")
        && f.metadata.stream().anyMatch(x -> x.key.equals("genre")
        && x.value.equals("Horror")));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM