Skip to content

Instantly share code, notes, and snippets.

View alexandreaquiles's full-sized avatar

Alexandre Aquiles alexandreaquiles

View GitHub Profile
interface ComparacaoDeDesenhos {
boolean valePara(Desenho desenho);
}
import java.util.*;
class ProgramaComForEach {
public static void main(String[] args){
List<String> personagens = Arrays.asList("Pato Donald", "Mickey", "Pateta", "Pluto");
for(int i = 0; i < personagens.size(); i++){
String personagem = personagens.get(i);
System.out.println(personagem);
@alexandreaquiles
alexandreaquiles / DatasImportantesNaoTestavel.java
Last active January 23, 2017 20:06
Exemplo de como a classe Clock da nova API de datas do Java 8 permite uma maior testabilidade. Faz parte do post: http://blog.caelum.com.br/conheca-a-nova-api-de-datas-do-java-8/
import java.time.LocalDate;
import java.time.temporal.TemporalAdjusters;
public class DatasImportantesNaoTestavel {
public LocalDate diaDoProgramadorDesseAno(){
//como fazer para testar uma data do passado, por exemplo, de 2012?
return LocalDate.now().with(TemporalAdjusters.firstDayOfYear()).plusDays(255);
}
}
@alexandreaquiles
alexandreaquiles / Aquatico.java
Last active May 19, 2021 20:41
Exemplo de colisão de métodos default no Java 8.
interface Aquatico {
default void move(){
System.out.println("Move na água...");
}
}
@alexandreaquiles
alexandreaquiles / DiasUteis.java
Last active October 11, 2021 00:31
Passado um ano ou um mês ou alguns meses de um ano, gera um mapa (Map) dos meses (YearMonth) com a lista de datas (LocalDate) que são dias úteis (segunda a sexta).
import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.Month;
import java.time.YearMonth;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.stream.Collectors;
@alexandreaquiles
alexandreaquiles / Main.java
Last active August 29, 2015 13:58
Métodos estáticos de interfaces só podem ser acessados diretamente pela interface.
interface Interface {
static void i(){
System.out.println("interface");
}
}
class ClasseMae {
static void a(){
System.out.println("mãe");
}
@alexandreaquiles
alexandreaquiles / DiasUteisComCollectToMap.java
Last active August 29, 2015 13:59
Comparando implementações que obtem os dias úteis de um ano de maneira iterativa, com streams/flatMap e com streams/collectToMap. Uma medição simples de 100 iterações em um i5 com 4 processadores teve o seguinte resultado: iterativo ~ 47 ms, com flatMap ~ 77 ms, com collect toMap ~ 51 ms.
import java.time.DayOfWeek;
import java.time.Month;
import java.time.YearMonth;
import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class DiasUteisComCollectToMap {
public static void comCollectToMap(int ano) {
Stream.of(Month.values())
@alexandreaquiles
alexandreaquiles / Programa.java
Last active May 5, 2021 23:14
Resolvedor de Baskara que usa algumas coisas do Java 8. Resposta para: http://www.guj.com.br/18520-programa-para-calculo-de-equacao-de-2-grau
package baskara;
import java.util.Scanner;
import baskara.ResolvedorBaskara.ResultadoBaskara;
public class Programa {
public static void main(String[] args) {
try(Scanner sc = new Scanner(System.in)){
@alexandreaquiles
alexandreaquiles / CargaHorariaServidores.java
Last active April 8, 2022 14:52
Programa (em Java 8 vs grep) que pega as informações disponíveis no Portal da Transparência e sumariza a carga horária dos servidores públicos federais. Fonte dos dados: https://www.portaltransparencia.gov.br/download-de-dados/servidores/201402_Servidores_SIAPE
package cargaHorariaDosServidores;
import java.io.IOException;
import java.nio.charset.Charset;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.LinkedHashMap;
import java.util.function.Function;
import java.util.regex.Matcher;
@alexandreaquiles
alexandreaquiles / ArgentumBean.java
Last active August 29, 2015 13:59
Colocando um gráfico de Candlesticks na página principal do Argentum, o projeto do FJ-22: http://www.caelum.com.br/apostila-java-testes-jsf-web-services-design-patterns/
package br.com.caelum.argentum.bean;
//outros imports continuam...
import br.com.caelum.argentum.grafico.GeradorModeloGraficoCandle;
import org.primefaces.model.chart.OhlcChartModel;
@ManagedBean
@ViewScoped
public class ArgentumBean implements Serializable {