/******************************************************************************* * Copyright (c) 2011-2014 Fernando Petrola * * This file is part of Dragome SDK. * * All rights reserved. This program and the accompanying materials * are made available under the terms of the GNU Public License v3.0 * which accompanies this distribution, and is available at * http://www.gnu.org/licenses/gpl.html ******************************************************************************/ package com.dragome.tests.lambda; import java.util.Arrays; import java.util.Collection; import java.util.Comparator; import java.util.List; import java.util.function.Predicate; import java.util.stream.Collectors; import java.util.stream.Stream; import com.dragome.commons.compiler.annotations.CompilerType; import com.dragome.commons.compiler.annotations.DragomeCompilerSettings; @DragomeCompilerSettings(CompilerType.Standard) public class TestStreams1 { public static void main(String[] args) { // List<Integer> numbers= Arrays.asList(9, 10, 3, 4, 7, 3, -5); // numbers.stream().map(i -> i * i).distinct().forEach(System.out::println); Stream.of("1", "2", "3", "4", "5").limit(3).map(TestStreams1::parserInt).filter(i -> i % 2 != 0).forEach(i -> System.out.println(i)); System.out.println("sdg"); // m5(); // m2(); } private static int parserInt(String a) { return Integer.parseInt(a); } private static void m2() { Collection<String> myList= Arrays.asList("Hello", "Java", "World", "8", "Streams", "Fer"); Predicate<String> isKnown= myList::contains; long countLongStrings= myList.stream().filter(element -> element.length() > 4).count(); System.out.println(countLongStrings); } private static void m1() { List<String> myList= Arrays.asList("element1", "element2", "element3"); myList.forEach(element -> System.out.println(element)); } private static void m3() { Collection<String> myList= Arrays.asList("Hello", "Java", "World", "ocho", "Streams", "Fer"); List<String> collect= myList.stream().map(s -> s.toUpperCase()).limit(4).filter(matches()).skip(2).collect(Collectors.toList()); } private static Predicate<? super String> matches() { return s -> { System.out.println(s); return s.length() > 3; }; } private static void m4() { Persona[] personas= new Persona[] { new Persona("Diego"), new Persona("Armando"), new Persona("Maradona") }; Comparator<? super Persona> comparator= Persona::firstNameComparator; List<Persona> collect= Stream.of(personas).sorted(comparator).collect(Collectors.toList()); } private static void m5() { Persona[] personas= new Persona[] { new Persona("Diego"), null, new Persona("Armando"), new Persona("Maradona") }; Comparator<? super Persona> comparator= Persona::firstNameComparator; List<String> collect= Stream.of(personas).filter(p -> p != null).map(p -> p.getFirstName()).collect(Collectors.toList()); } private void m6() { List<String> names= Arrays.asList("Java", "Scala", "C++", "Haskell", "Lisp"); names.stream().filter(((Predicate<String>) n -> n.startsWith("J")).and(n -> n.length() == 4)).forEach((n) -> System.out.print("Empieza con J y tiene 4 caracteres: " + n)); } public static class Persona { private String firstName; public Persona(String firstName) { super(); this.firstName= firstName; } public int firstNameComparator(Persona persona) { return getFirstName().compareTo(persona.getFirstName()); } private String getFirstName() { return firstName; } } }