Java - Tenho as seguintes classes e preciso instanciar o método "listar" na classe "Faturamento" usando Collections para que no final gere o resultado conforme inseri no final do post:

4 respostas Resolvido
programaçãojava
P

import java.util.ArrayList;
import java.util.List;

public class Repositorio {
// essa classe não deve ser alterada

public List<String> todosAtendimentos() {
	List<String> atendimentos = new ArrayList<String>();
	atendimentos.add("Totó");
	atendimentos.add("Mel");
	atendimentos.add("Garfield");
	atendimentos.add("Rex");
	atendimentos.add("Totó");
	atendimentos.add("Rex");
	atendimentos.add("Bolt");
	atendimentos.add("Nina");
	atendimentos.add("Capachão");
	atendimentos.add("Fifi");
	atendimentos.add("Fifi");
	atendimentos.add("Rex");
	atendimentos.add("Paçoca");
	atendimentos.add("Pipoca");
	atendimentos.add("Amora");
	atendimentos.add("Kiara");
	atendimentos.add("Kiara");
	atendimentos.add("Meg");
	atendimentos.add("Bolt");
	atendimentos.add("Gigi");
	atendimentos.add("Bolt");
	atendimentos.add("Pipoca");
	atendimentos.add("Scooby");
	atendimentos.add("Bolt");
	atendimentos.add("Bolt");
	atendimentos.add("Mafalda");
	atendimentos.add("Capachão");
	atendimentos.add("Marley");
	atendimentos.add("Scooby");
	atendimentos.add("Lua");
	atendimentos.add("Bolt");
	return atendimentos;
}

public double getPrecoConsulta() {
	return 79.43;
}

}

import java.util.List;

public class Principal {
// Atenção: essa classe não deve ser alterada

public static void main(String[] args) {
	// carregar lista de atendimentos do repositório
	Repositorio repositorio = new Repositorio();
	List<String> atendimentos = repositorio.todosAtendimentos();
	double precoConsulta = repositorio.getPrecoConsulta();
	
	// listar os atendimentos feitos só para fins de validação
	System.out.println("Atendimentos realizados: \n" + atendimentos + "\n");
	
	// processar o faturamento
	// TODO a classe Faturamento com o construtor e os métodos processar() 
	//       e listar() precisam ser implementadas por vocês 
	Faturamento faturamento = new Faturamento(atendimentos, precoConsulta);
	faturamento.processar();
	faturamento.listar();
}

}

import java.util.Collections;

import java.util.ArrayList;

import java.util.List;

public class Faturamento {

Repositorio repositorio = new Repositorio();

public Faturamento(List<String> atendimentos, double precoConsulta) {
}

public void processar() {
       	int size = repositorio.todosAtendimentos().size();
        System.out.println(size + " fatura(s) processada(s) pelo sistema.");
    }

public void listar() {
 }

}

// resultado que preciso gerar mas não estou conseguindo:

Atendimentos realizados:
[Totó, Mel, Garfield, Rex, Totó, Rex, Bolt, Nina, Capachão, Fifi, Fifi, Rex, Paçoca, Pipoca, Amora, Kiara, Kiara, Meg, Bolt, Gigi, Bolt, Pipoca, Scooby, Bolt, Bolt, Mafalda, Capachão, Marley, Scooby, Lua, Bolt]

18 fatura(s) processada(s) pelo sistema:

  • Animal: Amora com 1 atendimento(s) no valor de R$ 79.43
  • Animal: Bolt com 6 atendimento(s) no valor de R$ 476.58
  • Animal: Capachão com 2 atendimento(s) no valor de R$ 158.86
  • Animal: Fifi com 2 atendimento(s) no valor de R$ 158.86
  • Animal: Garfield com 1 atendimento(s) no valor de R$ 79.43
  • Animal: Gigi com 1 atendimento(s) no valor de R$ 79.43
  • Animal: Kiara com 2 atendimento(s) no valor de R$ 158.86
  • Animal: Lua com 1 atendimento(s) no valor de R$ 79.43
  • Animal: Mafalda com 1 atendimento(s) no valor de R$ 79.43
  • Animal: Marley com 1 atendimento(s) no valor de R$ 79.43
  • Animal: Meg com 1 atendimento(s) no valor de R$ 79.43
  • Animal: Mel com 1 atendimento(s) no valor de R$ 79.43
  • Animal: Nina com 1 atendimento(s) no valor de R$ 79.43
  • Animal: Paçoca com 1 atendimento(s) no valor de R$ 79.43
  • Animal: Pipoca com 2 atendimento(s) no valor de R$ 158.86
  • Animal: Rex com 3 atendimento(s) no valor de R$ 238.29
  • Animal: Scooby com 2 atendimento(s) no valor de R$ 158.86
  • Animal: Totó com 2 atendimento(s) no valor de R$ 158.86

// ainda sou novo em java, se puderem incluir exemplos me ajuda melhor na aprendizagem, valeu!

4 Respostas

S

Teve um cara que fez esse exercício recentemente aqui no GUJ, da uma olhada no código dele e tenta entender, não só copiar, qualquer dúvida só comenter aqui que tento tirar.

Ah, e poderia me dizer da onde é esse exercício? Já é o terceira vez que vejo ele por aqui.

P

Opa, pesquisei e não encontrei, por isso postei kkkk, você pode me enviar o link, por favor, caso encontre?

Cara, esse exercício é da faculdade, não sei se os outros também eram, mas bem provável…

P

Já vi que anexou o link aí no comentário, valeu, vou dar uma olhada!

P
Solucao aceita
import java.util.Collections;

import java.util.LinkedHashSet;

import java.util.List;

import java.util.Set;

public class Faturamento {

Repositorio repositorio = new Repositorio();

public Faturamento(List<String> atendimentos, double precoConsulta) {
	
}

public void processar() {
       	int size = repositorio.todosAtendimentos().size();
        System.out.println(size + " fatura(s) processada(s) pelo sistema.");
}

public void listar() {
	
	List<String> listaAtendimentos = repositorio.todosAtendimentos();
	
	Collections.sort(listaAtendimentos);
	
	Set<String> set = new LinkedHashSet<>();
	set.addAll(listaAtendimentos);
	
	for (String nomeAnimal : set ) {
        
        int qtdAtendimento = Collections.frequency(repositorio.todosAtendimentos(), nomeAnimal);
       
		double precoAtendimento = qtdAtendimento * repositorio.getPrecoConsulta();
			
			System.out.println("- Animal: " + nomeAnimal + " com " + qtdAtendimento +
    				" atendimento(s) com valor total de R$ " + precoAtendimento);

	}
	
}

}

Criado 16 de junho de 2020
Ultima resposta 16 de jun. de 2020
Respostas 4
Participantes 2