package market;
import java.util.ArrayList;
import java.util.List;
import java.util.function.Consumer;
public class Oitinho {
public static void main(String[] args) {
List<String> palavras = new ArrayList<String>();
palavras.add("Flavio Jr");
palavras.add("Junior Market");
palavras.add("Monster");
// -------------------------------------- iterator
// #1 - método normal
Consumer<String> consumidor = new ImprimeNaLinha();
palavras.forEach(consumidor);
// #2 - mesma coisa, mas usando classe anonima
Consumer<String> consumidor2 = new Consumer<String>() {
@Override
public void accept(String t) {
System.out.println(t);
}
};
palavras.forEach(consumidor2);
// #3 - mesma coisa, mas declaração direto no método
palavras.forEach(new Consumer<String>() {
@Override
public void accept(String t) {
System.out.println(t);
}
});
// #4 - mesma coisa mas usando lambda
palavras.forEach((String t) -> {
System.out.println(t);
});
// #5 - menor ainda!
palavras.forEach(s -> {
System.out.println(s);
});
// #6 - menor ainda!!!
palavras.forEach(s -> System.out.println(s));
}
}
class ImprimeNaLinha implements Consumer<String> {
@Override
public void accept(String s) {
System.out.println(s);
}
}