• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Wywoływanie lambda wyrażeń w ciągu

0 głosów
421 wizyt
pytanie zadane 26 lipca 2016 w Java przez NYC_fan Początkujący (260 p.)

Cześć

Stworzyłem klasę IntegerArrayProceeder, która ma przetwarzać wcześniej przekazaną tablicę integerów poprzez lambda wyrażenia

 

package PD;

import java.util.function.Consumer;
import java.util.function.Function;
import java.util.function.Predicate;

/**
 * Created by Marek on 2016-07-25.
 */
public class IntegerArrayProceeder {

    private Integer[] arrayPriv;  

    public IntegerArrayProceeder(Integer[] arrayToProceed) {
        arrayPriv = arrayToProceed;
    }

/*       filtruje elementy tablicy podanym lambda wyrazeniem, jezeli dany element nie spełnia kryterium
    wtedy wstawiamy null w to miejsce*/

    public void filter(Predicate<Integer> pred) {

        for (int i = 0; i < arrayPriv.length; i++) {
            if (pred.test(arrayPriv[i])) {
                System.out.println("continue");
                continue;
            } else {
                arrayPriv[i] = null;
                System.out.println("null");
            }
        }
    }

    /*
        przetwarza i modyfikuje kolejne elementy tablicy podanym lambda wyrazeniem
    */
    public void mapEvery(Function<Integer, Integer> func) {
        for (int i = 0; i < arrayPriv.length; i++) {
            if (arrayPriv[i] != null) {
                func.apply(arrayPriv[i]);
                System.out.println("okok");
            }else {
                System.out.println("null");
            }
        }
    }
}

teraz klasa testowa:

 

package PD;

import java.util.function.Predicate;
import java.util.function.Function;

/**
 * Created by Marek on 2016-07-25.
 */
public class MainZad2 {

    public static void main(String[] args) {

        Integer[] arrayToProceed = {1, 2, 3, 4, 5, 6};
        IntegerArrayProceeder iProceeder = new IntegerArrayProceeder(arrayToProceed);


        iProceeder.filter((num) -> num % 2 == 0);
        System.out.println();
        iProceeder.mapEvery((num) -> num + 3);
        System.out.println();
        System.out.println();
        System.out.println();

        iProceeder.filter((num) -> num % 2 == 0).mapEvery((num) -> num + 3);  // ta linijka nie działa


    }
}

Mam za zadanie napisać tak program, abym mógł wywoływać metody w ciągu, tutaj nie wiem jak to zrobić, pojedyńczo nie mam z tym żadnego problemu

 

Liczę na wskazówki, a nie na gotowe rozwiązanie

 

komentarz 26 lipca 2016 przez Porcupine Nałogowiec (31,560 p.)
Tzn. masz napisać coś w rodzaju własnych strumieni z Javy 8, tak?

Btw. Pętle foreach są w Javie bardziej preferowane od tych indeksowanych (czytelniejsze, ograniczają niepotrzebny boilerplate code)
komentarz 28 lipca 2016 przez NYC_fan Początkujący (260 p.)
Wydaje mi się, że to nie strumienie, ale sam nie wiem, zadanie dostałem, aby opanować lambdy ;) spróbuję tak jak kolega niżej zaproponował

2 odpowiedzi

0 głosów
odpowiedź 26 lipca 2016 przez smh Obywatel (1,940 p.)

Wskazówka: Niech metody, które będziesz łączył, zwracają this.

0 głosów
odpowiedź 30 lipca 2016 przez NYC_fan Początkujący (260 p.)
UP

Nie umiem zrobić tego samemu, podrzuci ktoś kod?
komentarz 4 sierpnia 2017 przez siof Gaduła (3,560 p.)
Aby zrobić to co napisał @smh musisz zmienić w funkcjach void na nazwę klasy (np IntegerArrayProceeder) a na końcu tych funkcji dodać return this.

Podobne pytania

0 głosów
1 odpowiedź 281 wizyt
pytanie zadane 5 listopada 2019 w Java przez aspoka Mądrala (5,290 p.)
0 głosów
4 odpowiedzi 547 wizyt
pytanie zadane 24 października 2018 w Java przez Potopiec Obywatel (1,550 p.)
0 głosów
1 odpowiedź 542 wizyt
pytanie zadane 17 października 2020 w Java przez amtrax Dyskutant (9,630 p.)

93,632 zapytań

142,556 odpowiedzi

323,056 komentarzy

63,139 pasjonatów

Advent of Code 2025

Top 15 użytkowników

  1. 2900p. - dia-Chann
  2. 2870p. - DziarnowskiJ
  3. 2827p. - Łukasz Piwowar
  4. 2783p. - raydeal
  5. 2758p. - Adrian Wieprzkowicz
  6. 2713p. - rucin93
  7. 2579p. - Łukasz Eckert
  8. 2523p. - Maurycy W
  9. 2459p. - CC PL
  10. 2082p. - Michal Drewniak
  11. 1885p. - robwarsz
  12. 1851p. - Mariusz Fornal
  13. 1811p. - rafalszastok
  14. 1600p. - Rafał Trójniak
  15. 1588p. - Tomasz Bielak
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...