/* * Olio-ohjelmoinnin perusteet I. * * Kokelmavirtojen ja aggregaatio-operaatioiden esittelyä. Ensimmäiset lambdat. * * Jorma Laurikkala (jorma.laurikkala@tuni.fi). * * Viimeksi muutettu 18.2.2020. * */ // Otetaan käyttöön Collections-kirjaston osat ja virrat. import java.util.*; import java.util.stream.*; public class AggregaatioDemo2 { public static void main(String[] args) { // Muodostetaan taulukosta virta. int[] luvut = { 13, 7, 31, 42, 11 }; IntStream lukuvirta = IntStream.of(luvut); // Lasketaan lukua 13 suurempien lukujen summa. long summa = lukuvirta // Valitaan luvut välioperaatiolla, joka saa parametrikseen Predicate- // tyyppisen lambdan. .filter(e -> e > 13) // Lasketaan summa. .sum(); System.out.println(summa); // 73 // Muodostetaan taulukosta virta. String[] nimet = { "Python", "Java", "C", "C++", "PHP", "JavaScript" }; Stream nimivirta = Stream.of(nimet); // Tulostetaan lajitellun virran kolme ensimmäistä alkiota. nimivirta // Lajitellaan String luokassa korvatun compareTo-metodin avulla. .sorted(String::compareTo) // Valitaan virran ensimmäiset alkiot. .limit(3) // Tulostetaan lambdalla yhdelle riville yhdellä välillä erottaen. .forEach(e -> System.out.print(e + " ")); // C C++ Java } }