Baiano | Pedreiro de Software na @ClaroBrasil | Estudando e evangelizando #java, #nodejs, #serverless, #aws | Editor do @trainingcentr 😆
Nosso objetivo é inserir pessoas na área de desenvolvimento através de apoio em fóruns de discussão, mentoria, grupos de estudos, code review, exposição de perfis profissionais para as empresas e compartilhamento de conhecimento através de artigos e vídeos.
O SouJava é um grupo de usuários, formado por desenvolvedores e evangelistas da tecnologia Java no Brasil, e tem como objetivo fortalecer, expandir e profissionalizar o uso de Java no país. O SouJava é um dos mais ativos e importantes grupos de usuários do mundo, e realiza diversas atividades no Brasil, e ajuda na organização do movimento Java mundial.
Eita, clica
no coração!
List<Human> humans = Arrays.asList(
new Human("Malaquias"),
new Human("Mateus")
);
Collections.sort(humans, new Comparator<Human>(){
@Override
public int compare(Human h1, Human h2) {
return h1.getName().compareTo(h2.getName());
}
});
var humans = List.of(
new Human("Schwarzenegger"),
new Human("Malaquias")
);
var humansSorted = humans.stream()
.sorted(Comparator.comparing(Human::getName));
humansSorted .forEach(h -> System.out.println(h.getName()));
String nome = "Malaquias";
Integer idade = 27;
Double pi = 3.14;
public Integer somaMaisUm(Integer x){
return x + 1;
}
public Integer somaMaisUm(Integer x){
return x + 1;
}
public Integer somaMaisUm(Integer x){
return x + 1;
}
public Integer somaMaisUm(Integer x){
return x + 1;
}
public Integer somaMaisUm(Integer x) -> {
return x + 1;
}
(Integer x) -> x + 1;
Function<Integer, Integer> somaMaisUm = (Integer x) -> {
return x + 1
};
Function<Integer, Integer> somaMaisUm = (x) -> x + 1;
var cinco = somaMaisUm.apply(5);
System.out.println(cinco);
contrato Autenticavel:
quem quiser ser Autenticavel precisa saber fazer:
1. dada uma senha, devolva um booleano
public interface Autenticavel {
boolean autentica(String senha);
}
public class Usuario implements Autenticavel {
private String senha;
public boolean autentica(String senha) {
return this.senha.equalsIgnoreCase(senha);
}
}
var cinco = somaMaisUm.apply(5);
System.out.println(cinco);
@FunctionalInterface public interface Function<T, R> { R apply(T t); default <V> Function<V, R> compose(Function<V, T> before){ Objects.requireNonNull(before); return (V v) -> apply(before.apply(v)); } default <V> Function<T, V> andThen(Function<R, V> after){ Objects.requireNonNull(after); return (T t) -> after.apply(apply(t)); } }
@FunctionalInterface
public interface NumericSum {
int sum(int x, int y);
default boolean isPrime(int number) {
return number > 1 && IntStream
.range(2, number)
.noneMatch(i -> number % i == 0);
}
}
public static void main(String[] args) {
int numOne = 2;
int numTwo = 2;
NumericSum caclSum = (int x, int y) -> x + y;
if(caclSum.isPrime(numOne)) {
System.out.println(caclSum.sum(numOne, numTwo));
}
}
Assistam essa palestra
Funções puras
Funções de primeira classe (são valores)
Funções de primeira ordem (são parâmetros ou retorno)
Currying, composição e por aí vai..
Então leia,
esse texto
for (String string : list) {
if (string.contains("Malaquias")) {
return true;
}
}
boolean isExist = list
.stream()
.anyMatch(e -> {
e.contains("a")
});
List<String> list = List.of(...);
Stream<String> stream = list
.stream()
.filter(e -> e.contains("abc"));
List<String> uris = List.of("C:\\My.txt");
Stream<Path> stream = uris
.stream()
.map(uri -> Paths.get(uri));
List<String> list = List.of(...); List<String> newList = list .stream() .filter(e -> e.contains("abc") .collect(Collectors.toList());
list
.parallelStream()
.map(element -> transform(element))
.collect(Collectors.toList());
list
.parallelStream()
.distinct()
.count();
Bons
estudos