Javaの8ストリームとリストのサイズを削減

Tishy今:

私は、マップオブジェクトの順序付けられたリストのサイズを(いくつかの要素を削除)を低減します。一定の条件が満たされない限り、リストのすべてのオブジェクトが破棄されなければなりません。その条件が満たされたときに、そのリストのすべての次の要素がリストに残ったはずです。私は、コードの一部を次のようしています。私は、Java 8と同じことをやりたいです。

public List<Map<String, String>> doAction(List<Map<String, String>> dataVoMap) {
    List<Map<String,String>> tempMap = new ArrayList<>();
    boolean found = false;
    for(Map<String, String> map: dataVoMap){
        if(map.get("service_id").equalsIgnoreCase("passed value") || found){
            found = true;
            tempMap.add(map);
        }
    }
    dataVoMap = tempMap;
    return dataVoMap;
}
また:

あなたは探しているdropWhile操作が、それのビルトイン実装では、Java-9と上が必要になります。

public List<Map<String, String>> doAction(List<Map<String, String>> dataVoMap) {
    return dataVoMap.stream()
            .dropWhile(m -> !"passed value".equalsIgnoreCase(m.get("service_id")))
            .collect(Collectors.toList());
}

:があるかもしれないときに私は、NPEを避けるために、既存のコードを編集してきたMap中でListキーなしservice_id

おすすめ

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