Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

preciso mudar de stream para for

Bom dia... estou tendo problemas de desempenho ao utilizar o metodo stream...

Preciso de ajuda para alterar meu código...

Disso->

        Optional<Insumo> in = linkedHashInsumos.stream().filter(insumo -> codigoBase.compareTo(insumo.getBase1_cod()) == 0 
                && (tipo.equalsIgnoreCase("INSUMO") ? "0" : "1").equalsIgnoreCase(insumo.getInsu1_com()) 
                && codigoIde.equalsIgnoreCase(insumo.getInsu1_ide())).findFirst();

para algo assim -> (estou mudando, mas não encontrando a lógica certa)

Optional<Insumo> in = null;

        for (Insumo insumo : linkedHashInsumos) {
            if(codigoBase.compareTo(insumo.getBase1_cod()) == 0 
                    && (tipo.equalsIgnoreCase("INSUMO") ? "0" : "1").equalsIgnoreCase(insumo.getInsu1_com()) 
                    && codigoIde.equalsIgnoreCase(insumo.getInsu1_ide())){

            }

        }

No caso, precisava atribuir o valor a busca na variavel "in"

2 respostas
solução!

Ola Jorge.

No primeiro trecho temos o findFirst, que retorna o primeiro que encontrar e para o laço. Relativamente a isso, poderiamos ter dentro do seu IF do laço FOR

for (Insumo insumo : linkedHashInsumos) {
            if(codigoBase.compareTo(insumo.getBase1_cod()) == 0 
                    && (tipo.equalsIgnoreCase("INSUMO") ? "0" : "1").equalsIgnoreCase(insumo.getInsu1_com()) 
                    && codigoIde.equalsIgnoreCase(insumo.getInsu1_ide())){

                in = Optional.of( insumo );
                break;
            }

}

Conseguiu avançar?

Bom dia @JP ! Obrigado pela resposta, vou fazer os testes com sua dica...