java8を使用して、ブール試合とリターンを見つけるための反復二つのリスト

デジタル:

私は以下のように2つのリストを持っています

List<String> pathNames = Lists.newArrayList("/state", "/country", "/country/name");
List<String> newPaths = Lists.newArrayList("/country/name");

私は以下のように試合と戻りブール値を見つけるために、二つのリストを反復処理するために、各Javaコードのための通常の持っています

if(CollectionUtils.isNotEmpty(pathNames)) {
    for (String path : newPaths) {
        for (String reqPath: pathNames) {
            if(FilenameUtils.wildcardMatch(path, reqPath)) {
               return true;
            }
        }
    }
}

しかし、私はリファクタリングしたいとJava8で同じことを行う、任意の助けに感謝することができます。

ernest_k:

あなたは、リストや通話の両方のストリームパイプラインを使用することができますanyMatch

return CollectionUtils.isNotEmpty(pathNames) &&
       newPaths.stream().anyMatch(np -> 
          pathNames.stream().anyMatch(pn -> FilenameUtils.wildcardMatch(np, pn)));

おすすめ

転載: http://10.200.1.11:23101/article/api/json?id=390016&siteId=1