Crie uma expressão lambda que multiplique dois números inteiros. A expressão deve ser implementada dentro de uma interface funcional com o método multiplicacao(int a, int b).
public class Principal {
public static void main(String[] args) {
Multiplicacao multi = (a, b) -> a * b;
int resultado = multi.multiplicacao(5,2);
System.out.println(resuldado);
}
}
@FunctionalInterface
public interface Multiplicacao {
int multiplicacao(int a, int b);
}
Implemente uma expressão lambda que verifique se um número é primo.
public class Principal {
public static void main(String[] args) {
Predicate<Integer> primo = numero -> {
if (numero <= 1) return false;
for(int i = 2; i <= Math.sqrt(numero); i++) {
if (numero % i == 0) return false;
}
return true;
};
System.out.println(primo.test(2));
}
}
@FunctionalInterface
public interface VerificaPrimo {
boolean primo(int numero);
}
Crie uma função lambda que receba uma string e a converta para letras maiúsculas.
public class Principal {
public static void main(String[] args) {
recebeNome maiúsculas = String::toUpperCase;
String resultado = maiúsculas.Nome("barbara");
System.out.println(resultado);
}
}
public interface recebeNome {
String Nome (String nome);
}
Crie uma expressão lambda que verifique se uma string é um palíndromo. A expressão deve ser implementada dentro de uma interface funcional com o método boolean verificarPalindromo(String str). Dica: utilize o método reverse da classe StringBuilder
public class Principal {
public static void main(String[] args) {
palíndromo pl = str -> {
String invertida = new StringBuilder(str).reverse().toString();
return str.equalsIgnoreCase(invertida);
};
System.out.println(pl.verificarPalindromo("ovo"));
}
}
public interface palíndromo {
boolean verificarPalindromo(String str);
}
Implemente uma expressão lambda que recebe uma lista de inteiros e retorna uma nova lista onde cada número foi multiplicado por 3. Dica: a função replaceAll, das Collections, recebe uma interface funcional como parâmetro, assim como vimos na função forEach.
public class Principal {
public static void main(String[] args) {
List<Integer> numeros = new ArrayList<>(List.of(2, 3, 4, 5, 6, 7));
numeros.replaceAll(n -> n*3);
System.out.println(numeros);
}
}
Crie uma expressão lambda que ordene uma lista de strings em ordem alfabética. Dica: a função sort, das Collections, recebe uma interface funcional como parâmetro, assim como vimos na função forEach.
public class Principal {
public static void main(String[] args) {
List<String> nomes = new ArrayList<>(
List.of("Carlos", "Ana Maria", "Bárbara", "Joana")
);
Ordenador ordenador = (a, b) -> a.compareTo(b);
nomes.sort((a, b) -> ordenador.comparar(a, b));
nomes.forEach(System.out::println);
}
}
@FunctionalInterface
public interface Ordenador {
int comparar(String s1, String s2);
}
** Crie uma função lambda que recebe dois números e divide o primeiro pelo segundo. A função deve lançar uma exceção de tipo ArithmeticException se o divisor for zero.**
public class Principal {
public static void main(String[] args) {
Divisao div = (a, b) -> {
if (b == 0){
throw new ArithmeticException("Divisão por zero não é permitida");
}
return a/b;
};
System.out.println(div.Divisao(5,2));
}
}
@FunctionalInterface
public interface Divisao {
double Divisao(double a, double b);
}