package desafio.listas;
public class Animal {
}
package desafio.listas;
public class Cachorro extends Animal{
}
package desafio.listas;
public class Produto {
private String nome;
private double preco;
public Produto(String nome, double preco) {
this.nome = nome;
this.preco = preco;
}
public String getNome() {
return nome;
}
public double getPreco() {
return preco;
}
}
package desafio.listas;
public interface Forma {
double calcularArea();
}
package desafio.listas;
public class Circulo implements Forma{
double raio;
public Circulo(double raio) {
this.raio = raio;
}
public double getRaio() {
return raio;
}
@Override
public double calcularArea() {
return Math.PI * raio * raio;
}
}
package desafio.listas;
public class Quadrado implements Forma {
double lado;
public Quadrado(double lado) {
this.lado = lado;
}
public double getLado() {
return lado;
}
@Override
public double calcularArea() {
return lado * lado;
}
}
package desafio.listas;
public class ContaBancaria {
int numero;
double saldo;
public ContaBancaria(int numero, double saldo) {
this.numero = numero;
this.saldo = saldo;
}
public int getNumero() {
return numero;
}
public double getSaldo() {
return saldo;
}
}
package desafio.listas;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
public class Main {
public static void main(String[] args) {
ArrayList<String> strings = new ArrayList<String>(List.of("a", "b", "c"));
System.out.println("Imprimindo lista de Strings: ");
strings.forEach(System.out::println);
// Cachorro cachorro = new Cachorro();
// Animal animal = (Animal) cachorro;
Animal animal = new Cachorro();
if (animal instanceof Cachorro) {
Cachorro cachorro = (Cachorro) animal;
}
Produto p1 = new Produto("Iphone 15", 2999.59);
Produto p2 = new Produto("Iphone 16", 3999.59);
Produto p3 = new Produto("Iphone 17", 7999.59);
ArrayList<Produto> produtos = new ArrayList<Produto>(List.of(p1, p2, p3));
double mdiaDosProdutos = produtos
.stream()
.mapToDouble(Produto::getPreco)
.average()
.orElse(0.0);
System.out.println("Media dos preços dos produtos: " + mdiaDosProdutos);
Circulo circulo = new Circulo(4);
Quadrado quadrado = new Quadrado(5);
ArrayList<Forma> formas = new ArrayList<>(List.of(circulo, quadrado));
formas.stream().forEach(forma -> System.out.println("Araa: " + forma.calcularArea()));
ArrayList<ContaBancaria> listaDeContas = new ArrayList<>();
for (int i = 0; i < 10 ; i++) {
int numero = new Random().nextInt(1001, 9000);
double saldo = new Random().nextDouble(2000, 19000);
ContaBancaria conta = new ContaBancaria(numero, saldo);
System.out.println("Conta " + i + ": " + " R$"+conta.getSaldo());
listaDeContas.add(conta);
}
ContaBancaria contaBancaria = listaDeContas.stream().max((o1, o2) -> Double.compare(o1.getSaldo(), o2.getSaldo())).get();
System.out.println("A conta bancaria com o maior saldo é R$: " + contaBancaria.getSaldo());
}
}
Resultado Esperado:
Imprimindo lista de Strings:
a
b
c
Media dos preços dos produtos: 4999.59
Araa: 50.26548245743669
Araa: 25.0
Conta 0: R$6507.883689382048
Conta 1: R$14853.435261820498
Conta 2: R$11385.75847370961
Conta 3: R$12309.683286555522
Conta 4: R$18437.528730951224
Conta 5: R$6550.139621736788
Conta 6: R$3650.8077653384717
Conta 7: R$14430.921669514057
Conta 8: R$7904.7634097053915
Conta 9: R$8474.512631125108
A conta bancaria com o maior saldo é R$: 18437.528730951224
Observação: O Saldo maior da conta pode variar de acordo com a execução devido a geração dinamica.