Reducir el tamaño de la lista con Java 8 corriente

Ahora Tishy:

Quiero reducir el tamaño (borrar algunos elementos) de una lista ordenada de objetos del mapa. Todos los objetos de la lista deben ser desechados a menos que se cumpla una determinada condición. Y cuando esa condición se cumple todos los siguientes elementos de esa lista debe permanecido en la lista. He siguiente fragmento de código. Quiero hacer lo mismo con 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;
}
también:

Que busca una dropWhileoperación, sino una aplicación incorporada de que requeriría de Java-9 y superior:

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());
}

Nota : He hecho una edición con el código existente para evitar NPE cuando podría haber una Mapen el Listsin la llave service_id.

Supongo que te gusta

Origin http://10.200.1.11:23101/article/api/json?id=431200&siteId=1
Recomendado
Clasificación