logo

Java 8-funksjoner – Komplett opplæring

Java 8 er den mest etterlengtede utgivelsen av Java-programmeringsspråkutvikling fordi den i hele Javas historie aldri har gitt ut så mange viktige funksjoner. Den består av hovedtrekkene i Java. Det er en ny versjon av Java og ble utgitt av Oracle 18. mars 2014. Java ga støtte for funksjonell programmering, nye Java 8 APIer, en ny JavaScript-motor, ny Java 8 streaming API, funksjonelle grensesnitt, standardmetoder, dato-tid API endringer osv.

Viktige Java 8-funksjoner introdusert

Det er noen få viktige Java 8-funksjoner nevnt nedenfor:



  • Lambda-uttrykk : Kortfattet funksjonskode ved hjelp av->>.
  • Funksjonelle grensesnitt : Enkeltmetode-grensesnitt.
  • Introduserte og forbedrede APIer:
    1. Stream API : Effektiv datamanipulering.
    2. Dato/klokkeslett API : Robust dato- og klokkesletthåndtering.
    3. Samling API-forbedringer : Forbedrede metoder for samlinger (f.eks.removeIf>,replaceAll>).
    4. Concurrency API-forbedringer : Nye klasser for parallell behandling (f.eks.CompletableFuture>).
  • Valgfri klasse : Håndter nullverdier trygt.
  • forEach()> Metode i Iterable Interface : Utfører en handling for hvert element i en samling.
  • Standardmetoder : Utvikle grensesnitt uten å bryte kompatibiliteten.
  • Statiske metoder : Tillater å legge til metoder med standardimplementeringer til grensesnitt.
  • Metodereferanser : Se enkelt til metoder.

Denne opplæringen dekker alle viktige Java 8-funksjoner som Java 8 APIer, Java-arrayer, Java 8 ArrayList og mange flere inkludert i Java 8-programmeringsspråket.

Java 8-funksjoner

Lambda-uttrykk

Lambda Expression uttrykker i utgangspunktet en forekomst av det funksjonelle grensesnittet, med andre ord kan du si det gir en klar og konsis måte å representere en metode for det funksjonelle grensesnittet ved å bruke et uttrykk. Lambda-uttrykk er lagt til i Java 8.

  • Lambda-uttrykk i Java 8
  • Lambda-uttrykksparametre
  • Java Lambda-uttrykk med samlinger
  • Lambdauttrykksvariabel fangst med eksempler
  • Hvordan lage tråd med Lambda-uttrykk i Java?
  • Serialisering av Lambda Expression i Java
  • Blokker Lambda-uttrykk i Java
  • Match Lambdas til grensesnitt i Java
  • Konvertering av ArrayList til HashMap i Java 8 ved hjelp av et Lambda-uttrykk
  • Sjekk om en streng bare inneholder alfabeter i Java ved å bruke Lambda-uttrykk
  • Fjern elementer fra en liste som tilfredsstiller et gitt predikat i Java

Funksjonelle grensesnitt

Et grensesnitt som bare inneholder én abstrakt metode er kjent som et funksjonelt grensesnitt, men det er ingen begrensning, du kan ha n antall standard og statiske metoder i et funksjonelt grensesnitt.



  • Funksjonelle grensesnitt i Java
  • Forbrukergrensesnitt i Java med eksempler
  • BiConsumer Interface i Java med eksempler
  • Predikatgrensesnitt med eksempler
  • Funksjonsgrensesnitt i Java med eksempler
  • Leverandørgrensesnitt i Java med eksempler

Metodereferanse

Metodereferanse er en forkortelse for et lambda-uttrykk for å kalle en metode. Det er fire typer metodereferanser som er som følger:

  • Statisk metodereferanse
  • Forekomstmetodereferanse for et bestemt objekt
  • Forekomstmetode Referanse til et vilkårlig objekt av en bestemt type
  • Konstruktørreferanse.

Eksempel:

numList.stream().filter(n ->n> 5).sorted().forEach(System.out::println);>
  • Metodereferanser i Java med eksempler
  • Konvertering av ArrayList til HashMap ved hjelp av Method Reference i Java 8

Strømmer

Stream API er introdusert i Java 8 og brukes til å behandle samlinger av objekter med den funksjonelle stilen til koding ved hjelp av lambda-uttrykket. Så for å forstå hva stream API er, må du ha kunnskap om både lambda og funksjonelle grensesnitt.



  • Java 8 Stream
  • Forskjellen mellom strømmer og samlinger i Java
  • Implementer filterfunksjon ved å bruke Reduce i Java 8 Streams
  • Java Stream API – Filtre
  • Parallell vs Sequential Stream i Java
  • Funksjonell programmering i Java 8+ ved hjelp av Stream API med eksempel
  • Mellommetoder for streaming i Java
  • Forskjellen mellom map() og flatMap() i Java Stream
  • Array for å streame i Java
  • 10 måter å lage en strøm i Java
  • Hvordan skrive ut elementer av en strøm i Java 8
  • Samle en strøm til en uforanderlig samling i Java
  • Sammenligning av strømmer med looper i Java
  • Hvorfor må du lukke Java-strømmene i endelig blokk?
  • Konverter en Iterable til Stream i Java
  • Konverter en Iterator til Stream i Java
  • Forskjellen mellom Stream.of()- og Arrays.stream()-metoden i Java
  • Konverter Stream til Set i Java
  • Konverter et sett til stream i Java
  • Strømmer på Arrays i Java 8

Java Stream-programmer

Java-strømmer gir en kraftig og uttrykksfull måte å behandle sekvenser av elementer i Java, som muliggjør funksjonelle operasjoner på datasamlinger. Stream API, introdusert i Java 8, muliggjør effektiv datamanipulering og transformasjon ved å bruke en sekvens av operasjoner som kan utføres parallelt eller sekvensielt

. Java Stream-programmer vil gi en klar oversikt over emnet:

gimp rektangel tegning
  • Program for å konvertere et kart til en strøm i Java
  • Program for å konvertere Boxed Array til Stream i Java
  • Program for å konvertere Primitive Array til Stream i Java
  • Program for å konvertere et sett til stream i Java ved hjelp av Generics
  • Program for å konvertere liste til stream i Java
  • Program for å konvertere Stream til en Array i Java
  • Hvordan få Slice of a Stream i Java
  • Flatting Nested Collections i Java
  • Hvordan konvertere en strøm til et kart i Java
  • Finn det første elementet i en strøm i Java
  • Finn det siste elementet i en strøm i Java
  • Hvordan finne dupliserte elementer i en strøm i Java
  • Tell forekomsten av et gitt tegn i en streng ved å bruke Stream API i Java
  • Omvendte elementer av en parallell strøm i Java
  • Hvordan få ArrayList fra Stream i Java 8
  • Generer Infinite Stream of Double i Java
  • Generer uendelig strøm av heltall i Java
  • Program for å iterere over en strøm med indekser i Java 8
  • Flat en strøm av arrays i Java ved å bruke forEach loop
  • Flat en strøm av lister i Java ved å bruke forEach loop
  • Flat en strøm av kart i Java ved å bruke forEach loop
  • Konverter en streng til en liste over tegn i Java
  • Initialiser en liste på en enkelt linje med en spesifisert verdi ved å bruke Java Stream

Java-strømmemetoder

Metoder relatert til en av de kraftigste funksjonene til Java Stream er nevnt nedenfor.

  • Stream forEach()-metoden i Java med eksempler
  • Strøm forEachOrdered()-metoden i Java med eksempler
  • foreach() loop vs Stream foreach() vs Parallell Stream foreach()
  • Stream of()-metoden i Java
  • Java Stream findAny() med eksempler
  • Stream anyMatch() i Java med eksempler
  • Stream allMatch() i Java med eksempler
  • Stream filter() i Java med eksempler
  • Strømsortert (Comparator komparator) Metode i Java
  • Stream sorted() i Java
  • Stream.distinct() i Java
  • Stream.concat() i Java
  • Stream.reduce() i Java med eksempler
  • stream.limit()-metoden i Java
  • Stream ofNullable(T)-metoden i Java med eksempler
  • Stream dropWhile()-metoden i Java med eksempler
  • Stream iterate(T,Predicate,UnaryOperator)-metoden i Java med eksempler
  • Strøm takeWhile()-metoden i Java med eksempler
  • concat() metode for strømgrensesnitt i Java API
  • Strøm findFirst() i Java med eksempler
  • DoubleStream mapToObj() i Java
  • Stream.Builder accept()-metoden i Java
  • IntStream.Builder add() Metode i Java
  • DoubleStream.Builder build() i Java
  • Stream.Builder build() i Java
  • Collectors.joining() Metode med eksempler
  • Stream builder() i Java med eksempler
  • Stream tomme() i Java med eksempler
  • LongStream flatMap (LongFunction Mapper) i Java
  • LongStream filter() i Java med eksempler

Sammenlignbar og komparator

Comparable og Comparator er grensesnitt som brukes til å bestille objekter. De er spesielt nyttige i sorteringsoperasjoner og samlinger som krever naturlig bestilling. Her vil vi lære om Comparable og Comparator i dybden.

  • Sammenlignbar vs Comparator i Java
  • Komparatorgrensesnitt i Java med eksempler
  • Hvorfor bruke komparatorgrensesnitt i stedet for sammenlignbart grensesnitt i Java?
  • Sorter en rekke tripletter ved å bruke Java Comparable og Comparator
  • Java-program for å sortere LinkedList ved hjelp av Comparable
  • Hvordan sortere HashSet-elementer ved å bruke sammenlignbart grensesnitt i Java?
  • Sorter LinkedHashMap etter verdier ved å bruke sammenlignbart grensesnitt i Java
  • Sorter LinkedHashMap etter nøkler ved hjelp av Comparable Interface i Java
  • Hvordan sortere LinkedHashSet-elementer ved å bruke sammenlignbart grensesnitt i Java?

Valgfri klasse

  • Java 8 valgfri klasse
  • Valgfri forNullable()-metode i Java med eksempler
  • Valgfri orElse()-metode i Java med eksempler
  • Valgfri ifPresentOrElse()-metode i Java med eksempler
  • Valgfri orElseGet()-metode i Java med eksempler
  • Valgfri filter()-metode i Java med eksempler
  • Valgfri tom()-metode i Java med eksempler
  • Valgfri hashCode()-metode i Java med eksempler
  • Valgfri toString()-metode i Java med eksempler
  • Valgfri equals()-metode i Java med eksempler
  • Valgfri stream() Metode i Java med eksempler
  • Valgfri eller()-metode i Java med eksempler
  • Valgfri get()-metode i Java med eksempler
  • Valgfri isPresent()-metode i Java med eksempler
  • Valgfri orElseThrow()-metode i Java med eksempler
  • Valgfri av() metode i Java med eksempler

Dato/klokkeslett API

Denne delen gir deg mulighet til å håndtere den stadig skiftende verden av datoer og klokkeslett i Java-programmene dine. Utforsk arbeid med kalendere, tidsstempler og tidsmanipulasjon – viktige ferdigheter for å bygge applikasjoner som omhandler tidsfrister, planlegging eller til og med historisk dataanalyse.

  • Date-Time API i Java 8
  • java.time.LocalDate Class i Java
  • java.time.LocalTime Class i Java
  • java.time.LocalDateTime Class i Java
  • java.time.MonthDay Class i Java
  • java.time.OffsetTime Class i Java
  • java.time.OffsetDateTime Class i Java
  • java.time.Clock Class i Java
  • java.time.ZonedDateTime Class i Java
  • java.time.ZoneId-klasse i Java
  • java.time.ZoneOffset Class i Java
  • java.time.Year Class i Java
  • java.time.YearMonth Class i Java
  • java.time.Period Class i Java
  • java.time.Duration Klasse i Java
  • java.time.Instant Class i Java
  • Java 8 Clock instant() metode med eksempler
  • Java 8 Clock fixed() metode med eksempler

Diverse

Java er et allsidig og kraftig programmeringsspråk som omfatter et bredt spekter av funksjoner og verktøy, som gjør det mulig for utviklere å bygge robuste applikasjoner med høy ytelse. La oss lære noen Java. Diverse emner er nevnt nedenfor:

  • Standardmetoder i Java 8
  • Statisk metode i grensesnitt i Java
  • Kan vi overstyre standardmetoden i Java?
  • forEach()-metoden i Java
  • Nashorn JavaScript-motor i Java med eksempler
  • MetaSpace i Java 8 med eksempler
  • Java-klasseavhengighetsanalysator i Java 8 med eksempler
  • LongUnaryOperator-grensesnitt i Java
  • IntUnaryOperator-grensesnitt i Java
  • DoubleUnaryOperator-grensesnitt i Java
  • UnaryOperator-grensesnitt i Java
  • ObjLongConsumer-grensesnitt med eksempel
  • ObjIntConsumer-grensesnitt med eksempel
  • ObjDoubleConsumer-grensesnitt med eksempel
  • DoubleSupplier-grensesnitt med eksempler
  • Boolean Supplier Interface med eksempler
  • IntSupplier-grensesnitt med eksempler
  • LongSupplier-grensesnitt med eksempler
  • LongConsumer Interface i Java med eksempler
  • DoubleConsumer-grensesnitt i Java med eksempler
  • IntConsumer Interface i Java med eksempler
  • LongFunction Interface i Java med eksempler
  • IntFunction-grensesnitt i Java med eksempler
  • ToDoubleFunction-grensesnitt i Java med eksempler
  • DoubleFunction-grensesnitt i Java med eksempler
  • ToIntFunction-grensesnitt i Java med eksempler
  • LongToIntFunction-grensesnitt i Java med eksempler
  • ToLongFunction-grensesnitt i Java med eksempler
  • LongToDoubleFunction-grensesnitt i Java med eksempler
  • ToLongBiFunction-grensesnitt i Java med eksempler
  • ToIntBiFunction-grensesnitt i Java med eksempler
  • ToDoubleBiFunction-grensesnitt i Java med eksempler
  • DoubleToLongFunction-grensesnitt i Java med eksempler
  • IntToDoubleFunction-grensesnitt i Java med eksempler
  • IntToLongFunction-grensesnitt i Java med eksempler
  • DoubleToIntFunction-grensesnitt i Java med eksempel
  • ArrayDeque removeIf()-metoden i Java med eksempler

Konklusjon

Java 8 har brakt mange spennende funksjoner som gjør det til et kraftig verktøy for utviklere. Med introduksjonen av Lambda-uttrykk, Stream API og nye Date and Time API, har Java 8 forbedret kodeeffektivitet og lesbarhet. Disse Java 8-funksjonene lar utviklere skrive mer fleksibel og konsis kode, noe som gjør arbeidet deres enklere og morsommere. Samlet sett fortsetter Java 8 å være en verdifull oppdatering som har forbedret Java-programmeringsspråket betydelig.

Java 8-funksjoner – Vanlige spørsmål

Q1: Hva er funksjonene til java8?

  • standard og statiske metoder
  • Funksjonelle grensesnitt og lambdauttrykk
  • Innsamlings-API
  • Java Time API
  • forEach()-metoden
  • Concurrency API
  • Java Stream API

Q2: Hvilke fordeler gir Java 8?

  • Koden er mer kortfattet og lesbar
  • Koden er mer gjenbrukbar
  • Koden er mer testbar og vedlikeholdbar
  • Koden er nå både anropbar og samtidig
  • Brukere kan skrive parallell kode
  • Brukere kan skrive databaselignende operasjoner
  • Applikasjoner gir nå bedre resultater
  • Koden er langt mer produktiv

Q3: Hva er et funksjonelt grensesnitt?

Et funksjonelt grensesnitt er et grensesnitt som inneholder bare én abstrakt metode.

Q4: Hvordan er funksjonelle grensesnitt og Lambda-uttrykk relatert?

Lambda-uttrykk brukes bare på det funksjonelle grensesnittets abstrakte metode.