logo

„Java 8“ funkcijos – visa pamoka

„Java 8“ yra labiausiai lauktas „Java“ programavimo kalbos kūrimo leidimas, nes per visą „Java“ istoriją ji niekada neišleido tiek daug pagrindinių funkcijų. Jį sudaro pagrindinės „Java“ funkcijos. Tai nauja „Java“ versija, kurią „Oracle“ išleido 2014 m. kovo 18 d. „Java“ teikė funkcinio programavimo palaikymą, naujas „Java 8“ API, naują „JavaScript“ variklį, naują „Java 8“ srautinio perdavimo API, funkcines sąsajas, numatytuosius metodus, datos ir laiko API pokyčiai ir kt.

Pristatytos pagrindinės „Java 8“ funkcijos

Toliau pateikiamos kelios pagrindinės „Java 8“ funkcijos:



  • Lambda išraiškos : glaustas funkcinis kodas naudojant->>>.
  • Funkcinės sąsajos : vieno metodo sąsajos.
  • Pristatytos ir patobulintos API:
    1. Srautinio API : Efektyvus duomenų apdorojimas.
    2. Data/Time API : patikimas datos ir laiko valdymas.
    3. Kolekcijos API patobulinimai : patobulinti rinkimo metodai (pvz.,replaceAll>).
    4. Lygiagretumo API patobulinimai : naujos lygiagretaus apdorojimo klasės (pvz.,CompletableFuture>).
  • Neprivaloma klasė : Saugiai elkitės su nulinėmis reikšmėmis.
  • forEach()> Metodas Iterable sąsajoje : atlieka veiksmą kiekvienam kolekcijos elementui.
  • Numatytieji metodai : tobulinkite sąsajas nepažeisdami suderinamumo.
  • Statiniai metodai : Leidžia prie sąsajų pridėti metodus su numatytuoju įgyvendinimu.
  • Metodo nuorodos : Lengvai žiūrėkite metodus.

Ši mokymo programa apima visas svarbias „Java 8“ funkcijas, tokias kaip „Java 8“ API, „Java“ masyvai, „Java 8 ArrayList“ ir daugelis kitų, įtrauktų į „Java 8“ programavimo kalbą.

Java 8 funkcijos

Lambda išraiškos

„Lambda Expression“ iš esmės išreiškia funkcinės sąsajos egzempliorių, kitaip tariant, galima sakyti, kad jis aiškiai ir glaustai pateikia funkcinės sąsajos metodą naudojant išraišką. „Lambda“ išraiškos pridedamos „Java 8“.

  • Lambda išraiškos Java 8
  • Lambda išraiškų parametrai
  • Java Lambda išraiška su kolekcijomis
  • Lambda išraiškos kintamųjų fiksavimas su pavyzdžiais
  • Kaip sukurti giją naudojant „Lambda“ išraiškas „Java“?
  • Lambda išraiškos serializavimas Java
  • Blokuoti Lambda išraiškas Java
  • Suderinkite „Lambdas“ su „Java“ sąsajomis
  • ArrayList konvertavimas į HashMap Java 8 naudojant Lambda išraišką
  • Patikrinkite, ar eilutėje yra tik „Java“ abėcėlės, naudodami Lambda išraišką
  • Pašalinkite elementus iš sąrašo, kuris tenkina nurodytą Java predikatą

Funkcinės sąsajos

Sąsaja, kurioje yra tik vienas abstraktus metodas, yra žinoma kaip funkcinė sąsaja, tačiau nėra jokių apribojimų, galite turėti n numatytųjų ir statinių metodų skaičius funkcinėje sąsajoje.



  • Funkcinės sąsajos Java
  • „Java“ vartotojo sąsaja su pavyzdžiais
  • BiConsumer sąsaja Java su pavyzdžiais
  • Predikato sąsaja su pavyzdžiais
  • Funkcijų sąsaja Java su pavyzdžiais
  • Tiekėjo sąsaja Java su pavyzdžiais

Metodo nuoroda

Metodo nuoroda yra sutrumpintas lambda išraiškos žymėjimas metodui iškviesti. Yra keturi metodų nuorodų tipai, kurie yra tokie:

  • Statinio metodo nuoroda
  • Egzempliorių metodas Konkretaus objekto nuoroda
  • Egzempliorių metodas Savavališko tam tikro tipo objekto nuoroda
  • Konstruktoriaus nuoroda.

Pavyzdys:

numList.stream().filter(n ->n> 5).sorted().forEach(System.out::println);>
  • Metodo nuorodos Java su pavyzdžiais
  • „ArrayList“ konvertavimas į „HashMap“ naudojant „Java 8“ metodo nuorodą

Srautai

Stream API yra įdiegta Java 8 ir naudojama apdoroti objektų rinkinius su funkciniu kodavimo stiliumi naudojant lambda išraišką. Taigi, norėdami suprasti, kas yra srauto API, turite žinoti tiek lambda, tiek funkcines sąsajas.



  • Java 8 srautas
  • Skirtumas tarp srautų ir kolekcijų Java
  • Įdiekite filtro funkciją naudodami „Reduce“ Java 8 srautuose
  • „Java Stream“ API – filtrai
  • Lygiagretus ir nuoseklus srautas Java
  • Funkcinis programavimas Java 8+ naudojant Stream API su pavyzdžiu
  • Tarpiniai srauto metodai Java
  • Skirtumas tarp žemėlapio () ir plokščio žemėlapio () „Java Stream“.
  • Masyvas, skirtas srautui „Java“.
  • 10 būdų, kaip sukurti srautą Java
  • Kaip spausdinti srauto elementus Java 8
  • Srauto rinkimas į nepakeičiamą kolekciją Java
  • Srautų palyginimas su „Java“ kilpomis
  • Kodėl reikia uždaryti „Java“ srautus galiausiai blokuojant?
  • Konvertuokite „Iterable“ į srautą „Java“.
  • Konvertuokite iteratorių į srautą Java
  • Skirtumas tarp Stream.of() ir Arrays.stream() metodų Java
  • Konvertuokite srautą į rinkinį „Java“.
  • Konvertuokite rinkinį į srautą „Java“.
  • Srautas masyvuose Java 8

„Java Stream“ programos

„Java Streams“ yra galingas ir išraiškingas būdas apdoroti „Java“ elementų sekas ir leidžia atlikti funkcinio stiliaus operacijas su duomenų rinkiniais. Stream API, įdiegta Java 8 versijoje, palengvina efektyvų duomenų apdorojimą ir transformavimą naudojant operacijų seką, kurią galima atlikti lygiagrečiai arba nuosekliai.

. „Java Stream“ programos suteiks aiškų vaizdą apie temą:

eilutės į int konvertavimas Java
  • Programa, skirta konvertuoti žemėlapį į srautą Java
  • Programa, skirta konvertuoti „Boxed Array“ į srautą „Java“.
  • Programa, skirta konvertuoti primityvų masyvą į srautą Java
  • Programa, skirta konvertuoti rinkinį į srautą Java naudojant Generics
  • Programa, skirta konvertuoti sąrašą į srautą Java
  • Programa konvertuoti srautą į masyvą Java
  • Kaip gauti „Slice of a Stream“ „Java“.
  • „Java“ įdėtųjų kolekcijų išlyginimas
  • Kaip konvertuoti srautą į žemėlapį Java
  • Raskite pirmąjį „Java“ srauto elementą
  • Raskite paskutinį „Java“ srauto elementą
  • Kaip „Java“ sraute rasti pasikartojančius elementus
  • Suskaičiuokite nurodyto simbolio atsiradimą eilutėje naudodami Stream API Java programoje
  • Atvirkštiniai lygiagretaus srauto elementai Java
  • Kaip gauti „ArrayList“ iš „Java 8“ srauto
  • Sukurkite begalinį dvigubo srautą „Java“.
  • Sukurkite begalinį sveikųjų skaičių srautą „Java“.
  • Programa, skirta kartoti per srautą su indeksais Java 8
  • Išlyginkite masyvų srautą Java naudodami forEach kilpą
  • Išlyginkite sąrašų srautą Java naudodami forEach kilpą
  • Išlyginkite žemėlapio srautą Java naudodami forEach kilpą
  • Konvertuokite eilutę į simbolių sąrašą Java
  • Naudodami „Java Stream“ inicijuokite sąrašą vienoje eilutėje su nurodyta verte

„Java Stream“ metodai

Metodai, susiję su viena iš galingiausių „Java Stream“ funkcijų, yra paminėti toliau.

  • Srautas forEach() metodas Java su pavyzdžiais
  • Srautas forEachOrdered() metodas Java su pavyzdžiais
  • foreach() kilpa vs srautas foreach() vs lygiagretus srautas foreach()
  • Stream of() metodas Java
  • Java Stream findAny() su pavyzdžiais
  • Srautiniškai transliuokite anyMatch() Java programoje naudodami pavyzdžius
  • Srautuokite allMatch() Java su pavyzdžiais
  • Stream filter () Java su pavyzdžiais
  • Srautas surūšiuotas (Comparator Comparator) metodas Java
  • Srautas surūšiuotas () Java
  • Stream.distinct() Java
  • Stream.concat() Java
  • Stream.reduce() Java su pavyzdžiais
  • stream.limit() metodas Java
  • Stream ofNullable(T) metodas Java su pavyzdžiais
  • Srautas dropWhile() metodas Java su pavyzdžiais
  • Stream iterate (T, Predicate, UnaryOperator) metodas Java su pavyzdžiais
  • Srautinis takeWhile() metodas Java su pavyzdžiais
  • concat() Srauto sąsajos metodas Java API
  • Srautiuokite findFirst() Java su pavyzdžiais
  • DoubleStream mapToObj() Java
  • Stream.Builder accept() metodas Java
  • IntStream.Builder add() metodas Java
  • DoubleStream.Builder build() Java
  • Stream.Builder build() Java
  • Kolekcionieriai.joining() metodas su pavyzdžiais
  • Stream builder() Java su pavyzdžiais
  • Srautas tuščias () Java naudojant pavyzdžius
  • „LongStream flatMap“ („LongFunction“ žemėlapių sudarytojas) „Java“.
  • LongStream filtras () Java su pavyzdžiais

Palyginamoji ir Palyginamoji

Comparable ir Comparator yra sąsajos, naudojamos objektams užsakyti. Jie ypač naudingi atliekant rūšiavimo operacijas ir rinkimus, kuriems reikalingas natūralus užsakymas. Čia mes išsamiai sužinosime apie palyginamąjį ir palyginamąjį.

  • „Comparable vs Comparator“ programoje „Java“.
  • „Java“ palyginimo sąsaja su pavyzdžiais
  • Kodėl „Java“ naudoti lyginamąją sąsają, o ne lyginamąją sąsają?
  • Rūšiuokite trigubų masyvą naudodami Java Comparable ir Comparator
  • „Java“ programa, skirta rūšiuoti „LinkedList“ naudojant „Comparable“.
  • Kaip rūšiuoti „HashSet“ elementus naudojant „Java“ palyginamąją sąsają?
  • Rūšiuokite „LinkedHashMap“ pagal reikšmes naudodami „Java“ palyginamąją sąsają
  • Rūšiuokite „LinkedHashMap“ pagal raktus naudodami „Java“ palyginamąją sąsają
  • Kaip rūšiuoti „LinkedHashSet“ elementus naudojant „Java“ palyginamąją sąsają?

Neprivaloma klasė

  • Java 8 pasirenkama klasė
  • Neprivalomas ofNullable() metodas Java su pavyzdžiais
  • Neprivalomas orElse() metodas Java su pavyzdžiais
  • Neprivalomas ifPresentOrElse() metodas Java su pavyzdžiais
  • Neprivalomas arbaElseGet() metodas Java su pavyzdžiais
  • Pasirenkamas filtro() metodas Java su pavyzdžiais
  • Pasirenkamas tuščias() metodas Java su pavyzdžiais
  • Pasirenkamas hashCode() metodas Java su pavyzdžiais
  • Neprivalomas toString() metodas Java su pavyzdžiais
  • Neprivalomas equals() metodas Java su pavyzdžiais
  • Neprivalomas srautas () metodas Java su pavyzdžiais
  • Neprivalomas arba() metodas Java su pavyzdžiais
  • Neprivalomas get() metodas Java su pavyzdžiais
  • Neprivalomas isPresent() metodas Java su pavyzdžiais
  • Neprivalomas orElseThrow() metodas Java su pavyzdžiais
  • Neprivalomas of() metodas Java su pavyzdžiais

Data/Time API

Šiame skyriuje galite tvarkyti nuolat kintantį „Java“ programų datų ir laiko pasaulį. Ištirkite darbą su kalendoriais, laiko žymomis ir laiko manipuliavimu – esminiais įgūdžiais kuriant programas, susijusias su terminais, planavimu ar net istorinių duomenų analize.

  • Datos ir laiko API Java 8 versijoje
  • java.time.LocalDate klasė Java
  • java.time.LocalTime klasė Java
  • java.time.LocalDateTime klasė Java
  • java.time.MonthDay klasė Java
  • java.time.OffsetTime klasė Java
  • java.time.OffsetDateTime klasė Java
  • java.time.Clock Class Java
  • java.time.ZonedDateTime klasė Java
  • java.time.ZoneId klasė Java
  • java.time.ZoneOffset klasė Java
  • java.time.Year klasė Java
  • java.time.YearMonth klasė Java
  • java.time.Period Class Java
  • java.time.Duration klasė Java
  • java.time.Instant Class Java
  • Java 8 Clock instant() metodas su pavyzdžiais
  • Java 8 Clockfix() metodas su pavyzdžiais

Įvairūs

„Java“ yra universali ir galinga programavimo kalba, apimanti daugybę funkcijų ir įrankių, leidžiančių kūrėjams kurti patikimas, didelio našumo programas. Leiskite mums sužinoti keletą Java įvairių temų, paminėtų žemiau:

  • Numatytieji metodai Java 8
  • Statinis metodas „Java“ sąsajoje
  • Ar galime nepaisyti numatytojo „Java“ metodo?
  • ForEach() metodas Java
  • Nashorn JavaScript Engine Java su pavyzdžiais
  • MetaSpace Java 8 su pavyzdžiais
  • Java klasės priklausomybės analizatorius Java 8 su pavyzdžiais
  • „LongUnaryOperator“ sąsaja „Java“.
  • „IntUnaryOperator“ sąsaja „Java“.
  • „DoubleUnaryOperator“ sąsaja „Java“.
  • UnaryOperator sąsaja Java
  • ObjLongConsumer sąsaja su pavyzdžiu
  • „ObjIntConsumer“ sąsaja su pavyzdžiu
  • ObjDoubleConsumer sąsaja su pavyzdžiu
  • „DoubleSupplier“ sąsaja su pavyzdžiais
  • BooleanSupplier sąsaja su pavyzdžiais
  • „IntSupplier“ sąsaja su pavyzdžiais
  • „LongSupplier“ sąsaja su pavyzdžiais
  • „LongConsumer“ sąsaja „Java“ su pavyzdžiais
  • „DoubleConsumer“ sąsaja „Java“ su pavyzdžiais
  • „IntConsumer“ sąsaja „Java“ su pavyzdžiais
  • „LongFunction“ sąsaja „Java“ su pavyzdžiais
  • „IntFunction“ sąsaja „Java“ su pavyzdžiais
  • „ToDoubleFunction“ sąsaja „Java“ su pavyzdžiais
  • „DoubleFunction“ sąsaja „Java“ su pavyzdžiais
  • „ToIntFunction“ sąsaja „Java“ su pavyzdžiais
  • „LongToIntFunction“ sąsaja „Java“ su pavyzdžiais
  • „ToLongFunction“ sąsaja „Java“ su pavyzdžiais
  • „LongToDoubleFunction“ sąsaja „Java“ su pavyzdžiais
  • „ToLongBiFunction“ sąsaja „Java“ su pavyzdžiais
  • „ToIntBiFunction“ sąsaja „Java“ su pavyzdžiais
  • „ToDoubleBiFunction“ sąsaja „Java“ su pavyzdžiais
  • „DoubleToLongFunction“ sąsaja „Java“ su pavyzdžiais
  • „IntToDoubleFunction“ sąsaja „Java“ su pavyzdžiais
  • „IntToLongFunction“ sąsaja „Java“ su pavyzdžiais
  • „DoubleToIntFunction“ sąsaja „Java“ su pavyzdžiu
  • ArrayDeque removeIf() metodas Java su pavyzdžiais

Išvada

„Java 8“ atnešė daug įdomių funkcijų, kurios daro ją galingu įrankiu kūrėjams. Įdiegus Lambda išraiškas, Stream API ir naują datos ir laiko API, Java 8 pagerino kodo efektyvumą ir skaitomumą. Šios „Java 8“ funkcijos leidžia kūrėjams rašyti lankstesnį ir glaustesnį kodą, todėl jų darbas tampa lengvesnis ir malonesnis. Apskritai, „Java 8“ ir toliau yra vertingas atnaujinimas, kuris žymiai pagerino „Java“ programavimo kalbą.

„Java 8“ funkcijos – DUK

Q1: Kokios yra java8 funkcijos?

  • numatytieji ir statiniai metodai
  • Funkcinės sąsajos ir lambda išraiškos
  • Kolekcijos API
  • Java laiko API
  • kiekvienam () metodui
  • Lygiagretumo API
  • „Java Stream“ API

Q2: Kokie Java 8 pranašumai?

  • Kodas yra glaustesnis ir įskaitomas
  • Kodas yra labiau naudojamas pakartotinai
  • Kodas yra labiau patikrinamas ir prižiūrimas
  • Kodas dabar yra skambinamas ir tuo pačiu metu
  • Vartotojai gali rašyti lygiagretų kodą
  • Vartotojai gali rašyti į duomenų bazę panašias operacijas
  • Dabar programos veikia geriau
  • Kodas yra daug produktyvesnis

3 klausimas: kas yra funkcinė sąsaja?

Funkcinė sąsaja yra sąsaja, kurioje yra tik vienas abstraktus metodas.

4 klausimas: kaip yra susijusios funkcinės sąsajos ir lambda išraiškos?

Lambda išraiškos taikomos tik funkcinės sąsajos abstrakčiam metodui.