Desafio 1:
@FunctionalInterface
public interface Operacao {
int multiplicacao(int a, int b);
}
public class MainOperacao {
public static void main(String[] args) {
Operacao operacao = (a, b) -> a * b;
System.out.println(operacao.multiplicacao(5, 7));
}
}
Desafio 2:
@FunctionalInterface
public interface NumeroPrimo {
boolean verificarPrimo(int n);
}
import java.util.Scanner;
public class MainNumeroPrimo {
public static void main(String[] args) {
NumeroPrimo primo = n -> {
if (n <= 1) return false;
for (int i = 2; i <= Math.sqrt(n); i++) {
if (n % i == 0) return false;
}
return true;
};
Scanner scanner = new Scanner(System.in);
System.out.println("Digite um número:");
int num = scanner.nextInt();
if (primo.verificarPrimo(num)){
System.out.println("O número " + num + " é primo.");
} else {
System.out.println("O número " + num + " não é primo.");
}
scanner.close();
}
}
Desafio 3:
package desafio3;
import java.util.function.Function;
public class ConversorMaiusculo {
public static void main(String[] args) {
Function<String, String> maiuscula = s -> s.toUpperCase();
System.out.println(maiuscula.apply("java lambda"));
}
}
Desafio 4:
@FunctionalInterface
public interface Palindromo {
boolean verificarPalindromo(String str);
}
import java.util.Scanner;
public class MainPalindromo {
public static void main(String[] args) {
Palindromo palindromo = str -> str.equals(new StringBuilder(str).reverse().toString());
Scanner scanner = new Scanner(System.in);
System.out.println("Digite uma palavra e verifique se é um palíndromo:");
String palavra = scanner.nextLine();
if (palindromo.verificarPalindromo(palavra)){
System.out.println("A palavra " + palavra + " é um palíndromo.");
} else {
System.out.println("A palavra " + palavra + " não é um palíndromo.");
}
scanner.close();
}
}
Desafio 5:
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class ListaMultiplicados {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("----- Multiplicar números da lista por 3 -----");
System.out.println("Digite 5 números para a lista.");
List<Integer> numeros = new ArrayList<Integer>();
for (int i = 0; i < 5; i++) {
System.out.println("Número " + (i + 1) + ":");
numeros.add(scanner.nextInt());
}
numeros.replaceAll(n -> n * 3);
System.out.println("Números multiplicados:");
System.out.println(numeros);
scanner.close();
}
}
Desafio 6:
import java.util.Arrays;
import java.util.List;
public class ListaNomes {
public static void main(String[] args) {
List<String> nomes = Arrays.asList("Leo", "João", "Maria", "Ana", "Pedro");
nomes.sort((a, b) -> a.compareTo(b));
System.out.println(nomes);
}
}
Desafio 7:
@FunctionalInterface
public interface Divisao {
double divisao(int a, int b) throws ArithmeticException;
}
import java.util.Scanner;
public class MainDivisao {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Digite os números para divisão:");
System.out.println("Primeiro número:");
int num1 = scanner.nextInt();
System.out.println("Segundo número:");
int num2 = scanner.nextInt();
try {
Divisao divisao = (a, b) -> {
if (b == 0) throw new ArithmeticException("Não divida por zero.");
return (double) a / b;
};
System.out.printf("O resultado é: %.2f", divisao.divisao(num1,num2));
} catch (ArithmeticException e){
System.out.println("Erro: " + e.getMessage());
}
scanner.close();
}
}