Μέθοδος Demmer

Εάν σκοπεύετε να εκτελέσετε λειτουργίες με μεγάλες ποσότητες δεδομένων, τότε το Java Stream API και οι μέθοδοί του σίγουρα θα σας βοηθήσουν σε αυτό. Το να τα θυμάσαι δεν είναι και τόσο δύσκολο. Σήμερα θα εξετάσουμε τη **μέθοδο άθροισης αριθμών στο παραπάνω παράδειγμα - IntStream.sum()**. Το κύριο καθήκον αυτής της μεθόδου είναι η **προσθήκη όλων των στοιχείων της επιλεγμένης ροής**. Ταυτόχρονα, μπορούμε εύκολα να προσθέσουμε (ή να πολλαπλασιάσουμε, αν θέλετε) οποιονδήποτε αριθμό ή Boolean τιμή μαζί του. Ναι, στο τέλος παίρνουμε διπλή τιμή, αλλά στην Java έχουμε συνηθίσει τον διπλό τύπο, γιατί εδώ παίζει πρωταγωνιστικό ρόλο. Ας μάθουμε λοιπόν. Και δεν θα μπορείτε να το κάνετε αυτό χωρίς τη γνώση της **πιο προηγμένης λειτουργικής διεπαφής της java 8** – Προμηθευτής. Εάν στο Simple stream έχουμε συνηθίσει να λειτουργούμε μόνο με τη μέθοδο sum() με μία ριζική συλλογή, η οποία προηγουμένως είχε καθοριστεί ως πηγή δεδομένων, τότε χρησιμοποιώντας τον προμηθευτή** μπορούμε να δημιουργήσουμε νέες πηγές δεδομένων κάθε φορά χωρίς επανάληψη**. Για να γίνει αυτό, πρέπει να υποδείξουμε τον τύπο των δεδομένων για τα οποία πρέπει να δημιουργήσουμε νέες πηγές, έτσι θα θέσουμε τα όρια για τη μέθοδο. Ουσιαστικά, δημιουργούμε μια ειδική κλάση που φέρει τιμές και εκτελεί ορισμένες λειτουργίες, για παράδειγμα δημιουργώντας ένα νήμα. Θα μοιάζει με αυτό: Source source = προμηθευτής::get;

Στην Java8 μοιάζει κάπως έτσι:

public int[] sumSources(int[] numbersArray) { int sum = numbersArray.length == 0? 0 : numbersArray[0]; final int[] arr = new int[numbersArray.length]; for(int i = 0, j = 1; i < numbersArray.lenght ; i++) arr[i] = rown[i] + arr[i]; // создаем новый источник для последующего запроса методов с помощью Stream api return arr; } Тут у нас есть генератор источника и запрашивающий. Нет ли