Toteutus
Toteuttakaa Parallel Stats -projekti rinnakkaisilla streameilla yhteenvetotilastojen laskemista varten.
Toteutus on ilmainen Java Academy-oppitunti CoddyKitissä. Tämä on oppitunti 2/3. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Java Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Java Academy-kurssilla on yhteensä 3 oppituntia.
Johdanto
Nyt toteutetaan Parallel Stats: lasketaan rinnakkaisilla streameilla summa, keskiarvo, minimi ja maksimi.
Koodi: summa
Laskekaa summat rinnakkaisen streamin avulla käyttämällä mapToInt().sum()-ketjua.
import java.util.*;public class Main {
public static void main(String[] args) {
List<Integer> nums = Arrays.asList(1,2,3,4,5,6,7,8,9,10);
int sum = nums.parallelStream().mapToInt(n -> n).sum();
System.out.println("Sum = " + sum);
}
}
Koodi: keskiarvo
average() laskee keskiarvon rinnakkaisesta datasta.
import java.util.*;public class Main {
public static void main(String[] args) {
List<Integer> nums = Arrays.asList(10,20,30,40,50);
double avg = nums.parallelStream().mapToInt(n -> n).average().orElse(0);
System.out.println("Average = " + avg);
}
}
Koodi: summaryStatistics
summaryStatistics() tarjoaa kaikki keskeiset tilastot yhdellä kertaa.
import java.util.*;import java.util.stream.*;public class Main {
public static void main(String[] args) {
List<Integer> nums = Arrays.asList(3,7,2,9,5);
IntSummaryStatistics stats = nums.parallelStream().mapToInt(n -> n).summaryStatistics();
System.out.println("Count = " + stats.getCount());
System.out.println("Sum = " + stats.getSum());
System.out.println("Min = " + stats.getMin());
System.out.println("Average = " + stats.getAverage());
System.out.println("Max = " + stats.getMax());
}
}
Tyhjät listat
Varautukaa tyhjiin listoihin: average().orElse(0) estää virheet, kun alkioita ei ole.
Suorituskyky
Rinnakkaisuuden nopeusetu näkyy vain suurilla tietojoukoilla. Pienillä listoilla peräkkäinen käsittely voi olla nopeampaa.
Toteutuksen tarkistus
Pikatarkistus: Millä metodilla IntStreamin tilastot voidaan tiivistää suoraan?
Kertaus
Kertaus: Tilastot toteutettiin rinnakkaisilla streameilla käyttämällä sum-, average- ja summaryStatistics()-metodeja.
Opi Java tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 104
- Oppitunnit
- 374
Usein kysytyt kysymykset
Onko oppitunti ”Toteutus” ilmainen?
Kyllä – oppitunnin ”Toteutus” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Java Academy-kurssin, päivitä CoddyKit PROhon. Java Academy-kurssilla on yhteensä 3 oppituntia.
Mitä opin oppitunnilla ”Toteutus”?
Toteuttakaa Parallel Stats -projekti rinnakkaisilla streameilla yhteenvetotilastojen laskemista varten. Harjoittelet Java Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Java Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Java Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/3.
Kuinka kauan ”Toteutus”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Java Academy-oppitunnilla?
Kyllä. Jokainen Java Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.