Javaのストリームであればを削減

バンカー:

どのように私は、述語がtrueの場合にのみ減らす操作を適用することができますか?

例えば:

        Stream.of("foo=X","bar=Y","foo=Z")
        .reduce((arg1, arg2)-> arg1.contains(arg2) ? arg1  : <reduceNothing>)
        .collect(Collectors.toList());

私は次のいずれかを取り除きたい"foo=..."最後のリストを持っています"foo=X","bar=Y"

フェデリコ・ペラルタシャフナー:

ここで(流れなし)、それを行う方法です:

Map<String, String> map = new LinkedHashMap<>();

yourListOfArgs.forEach(arg -> map.merge(arg.split("=")[0], arg, (o, n) -> o));

Collection<String> uniqueArgs = map.values();

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=225147&siteId=1