Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Função do método

Atividade: Crie o imposto IHIT, que tem a seguinte regra: caso existam 2 itens com o mesmo nome, o imposto deve ser de 13% mais R$100,00.

public boolean deveUsarMaximaTaxacao(Orcamento orcamento) {
        List<String> noOrcamento = new ArrayList<String>();

        for(Item item : orcamento.getItens()) {
          if(noOrcamento.contains(item.getNome())) return true;
          else noOrcamento.add(item.getNome());
        }

O método não retornará false sempre?

Lista: List<String> noOrcamento = new ArrayList<String>();

Foreach: for(Item item : orcamento.getItens()) {...}

Condição: if(noOrcamento.contains(item.getNome()))

A condição está verificando se a lista noOrcamento (que está vazia, pois em nenhum momento algo foi adicionado nela) possui o nome de um item da lista itens de um objeto Orcamento.

Eu entendi errado ou o método realmente não faz sentido?

1 resposta
solução!

Na verdade eu estava errado, percebi que o else está adicionando na lista noOrcamento quando um certo elemento ainda não está lá, assim nas próximas iterações é verificado se já existe nessa lista, caso verdadeiro, a conclusão tomada seria que há um mesmo elemento que aparece duas ou mais vezes na lista itens de um objeto Orcamento.