convertir java para el bucle en la corriente con filtro

Roma:

Me he transformado en un habitual para el código de bucle en java 8 corrientes. Probé unos pocos, pero yo todavía estoy aprendiendo esto y quedando sin ideas, por favor sugerir ideas. se puede esto simplifica aún más? Aparte del uso de forEach, no soy capaz de cambiar mucho. Además, ¿por qué tengo que encasillado del Eid al cuerdas en getERecordFromId ((String) Eid)

Stream <String>eIdsStream = getEidStream();

final HashSet<String> declinedRecords = new HashSet<>();

eIdsStream.forEach (eid ->  {
        ERecord eRecord = getERecordFromId((String)eid);
        if(eRecord.getEHash() != null &&  Status.DECLINED == eRecord.getStatus()) {
            declineRecords.add(eRecord.getEHash());
        }
    }
Eran :

Se requiere el casting ya que utiliza una prima Streamvariable. Suponiendo getEidStream()devuelve una Stream<String>, debe haber asignado a una Stream<String>variable o no asignado a una variable en absoluto.

El uso de forEachderrotas el propósito de utilizar Streams en el primer lugar.

Debe utilizar filtery maptransformar el Streamde mantener los elementos requeridos, y luego a cobro revertido a una Set.

Set<String> declinedRecords =
    getEidStream().map(eid -> getERecordFromId(eid))
                  .filter(eRecord -> eRecord.getEHash() != null &&  Status.DECLINED == eRecord.getStatus())
                  .map(ERecord::getEHash)
                  .collect(Collectors.toSet());

Supongo que te gusta

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