Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Binaryoperator: Kombinering av To Verdier | Grunnleggende og Funksjonelle Egenskaper ved Stream API
Stream-API

bookBinaryoperator: Kombinering av To Verdier

Dette grensesnittet er spesielt nyttig når man kombinerer to verdier av samme type, for eksempel ved matematiske beregninger eller sammenslåing av data.

@FunctionalInterface
public interface BinaryOperator<T> extends BiFunction<T, T, T> {
    T apply(T t1, T t2);
}

BinaryOperator<T>-grensesnittet utvider BiFunction<T, T, T>, men i motsetning til BiFunction må både inngangsargumentene og returverdien alltid være av samme type T.

Dets eneste abstrakte metode, apply(T t1, T t2), utfører en operasjon på to argumenter og returnerer resultatet.

Praktisk eksempel

Anta at du har et lønnssystem hvor du må avgjøre hvilken av to bonuserårlig eller kvartalsvis — som er høyest, slik at det største beløpet kan tildeles en ansatt.

Main.java

Main.java

copy
123456789101112131415
package com.example; import java.util.function.BinaryOperator; public class Main { public static void main(String[] args) { BinaryOperator<Double> maxBonus = (bonus1, bonus2) -> Math.max(bonus1, bonus2); double annualBonus = 5000.0; double quarterlyBonus = 1500.0; double finalBonus = maxBonus.apply(annualBonus, quarterlyBonus); System.out.println("Awarded Bonus: " + finalBonus); } }

I dette eksempelet oppretter du en BinaryOperator<Double> som bruker Math.max() for å sammenligne to verdier og returnere den største.

Deretter definerer du to bonuser: annualBonus (årlig bonus) og quarterlyBonus (kvartalsvis bonus).

Metoden apply() kalles for å avgjøre hvilken bonus som er høyest, og resultatet skrives ut til konsollen. Denne metoden er nyttig når du må velge det beste alternativet dynamisk uten komplisert betingelseslogikk.

Statisk metoder

I tillegg til sin primære apply() metode, inkluderer BinaryOperator<T> flere nyttige statiske metoder:

  • maxBy(Comparator<T> comparator) – returnerer en BinaryOperator<T> som velger den største av to verdier basert på den angitte Comparator<T>;
  • minBy(Comparator<T> comparator) – returnerer en BinaryOperator<T> som velger den minste av to verdier basert på den angitte Comparator<T>.

Eksempel på bruk

Anta at du har et ansattadministrasjonssystem hvor du må avgjøre hvilken av to kandidater som har en høyere vurdering for å velge den beste til en forfremmelse.

Main.java

Main.java

copy
1234567891011121314151617181920212223242526272829303132333435
package com.example; import java.util.Comparator; import java.util.function.BinaryOperator; public class Main { public static void main(String[] args) { BinaryOperator<Employee> topPerformer = BinaryOperator.maxBy(Comparator.comparingInt(Employee::getRating)); Employee employee1 = new Employee("John", 85); Employee employee2 = new Employee("Sarah", 90); Employee bestEmployee = topPerformer.apply(employee1, employee2); System.out.println("Top employee: " + bestEmployee.getName()); } } class Employee { private String name; private int rating; public Employee(String name, int rating) { this.name = name; this.rating = rating; } public String getName() { return name; } public int getRating() { return rating; } }

BinaryOperator.maxBy()-metoden tar en Comparator<Employee>, som bruker Employee::getRating for å sammenligne ansatte etter deres vurderinger.

To Employee-objekter opprettes deretter med ulike vurderinger. apply()-metoden velger den ansatte med høyest vurdering og skriver ut navnet deres.

1. Hva er hovedformålet med det funksjonelle grensesnittet BinaryOperator<T>?

2. Hva er hovedmetoden i grensesnittet BinaryOperator<T>?

3. Hvilket grensesnitt er forelder til BinaryOperator<T>?

4. Hva vil følgende kode skrive ut?

question mark

Hva er hovedformålet med det funksjonelle grensesnittet BinaryOperator<T>?

Select the correct answer

question mark

Hva er hovedmetoden i grensesnittet BinaryOperator<T>?

Select the correct answer

question mark

Hvilket grensesnitt er forelder til BinaryOperator<T>?

Select the correct answer

question mark

Hva vil følgende kode skrive ut?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 1. Kapittel 15

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Suggested prompts:

Can you provide a code example using BinaryOperator in this context?

How does BinaryOperator differ from BiFunction in practical use?

Can you explain how to use maxBy and minBy with custom objects?

Awesome!

Completion rate improved to 2.33

bookBinaryoperator: Kombinering av To Verdier

Sveip for å vise menyen

Dette grensesnittet er spesielt nyttig når man kombinerer to verdier av samme type, for eksempel ved matematiske beregninger eller sammenslåing av data.

@FunctionalInterface
public interface BinaryOperator<T> extends BiFunction<T, T, T> {
    T apply(T t1, T t2);
}

BinaryOperator<T>-grensesnittet utvider BiFunction<T, T, T>, men i motsetning til BiFunction må både inngangsargumentene og returverdien alltid være av samme type T.

Dets eneste abstrakte metode, apply(T t1, T t2), utfører en operasjon på to argumenter og returnerer resultatet.

Praktisk eksempel

Anta at du har et lønnssystem hvor du må avgjøre hvilken av to bonuserårlig eller kvartalsvis — som er høyest, slik at det største beløpet kan tildeles en ansatt.

Main.java

Main.java

copy
123456789101112131415
package com.example; import java.util.function.BinaryOperator; public class Main { public static void main(String[] args) { BinaryOperator<Double> maxBonus = (bonus1, bonus2) -> Math.max(bonus1, bonus2); double annualBonus = 5000.0; double quarterlyBonus = 1500.0; double finalBonus = maxBonus.apply(annualBonus, quarterlyBonus); System.out.println("Awarded Bonus: " + finalBonus); } }

I dette eksempelet oppretter du en BinaryOperator<Double> som bruker Math.max() for å sammenligne to verdier og returnere den største.

Deretter definerer du to bonuser: annualBonus (årlig bonus) og quarterlyBonus (kvartalsvis bonus).

Metoden apply() kalles for å avgjøre hvilken bonus som er høyest, og resultatet skrives ut til konsollen. Denne metoden er nyttig når du må velge det beste alternativet dynamisk uten komplisert betingelseslogikk.

Statisk metoder

I tillegg til sin primære apply() metode, inkluderer BinaryOperator<T> flere nyttige statiske metoder:

  • maxBy(Comparator<T> comparator) – returnerer en BinaryOperator<T> som velger den største av to verdier basert på den angitte Comparator<T>;
  • minBy(Comparator<T> comparator) – returnerer en BinaryOperator<T> som velger den minste av to verdier basert på den angitte Comparator<T>.

Eksempel på bruk

Anta at du har et ansattadministrasjonssystem hvor du må avgjøre hvilken av to kandidater som har en høyere vurdering for å velge den beste til en forfremmelse.

Main.java

Main.java

copy
1234567891011121314151617181920212223242526272829303132333435
package com.example; import java.util.Comparator; import java.util.function.BinaryOperator; public class Main { public static void main(String[] args) { BinaryOperator<Employee> topPerformer = BinaryOperator.maxBy(Comparator.comparingInt(Employee::getRating)); Employee employee1 = new Employee("John", 85); Employee employee2 = new Employee("Sarah", 90); Employee bestEmployee = topPerformer.apply(employee1, employee2); System.out.println("Top employee: " + bestEmployee.getName()); } } class Employee { private String name; private int rating; public Employee(String name, int rating) { this.name = name; this.rating = rating; } public String getName() { return name; } public int getRating() { return rating; } }

BinaryOperator.maxBy()-metoden tar en Comparator<Employee>, som bruker Employee::getRating for å sammenligne ansatte etter deres vurderinger.

To Employee-objekter opprettes deretter med ulike vurderinger. apply()-metoden velger den ansatte med høyest vurdering og skriver ut navnet deres.

1. Hva er hovedformålet med det funksjonelle grensesnittet BinaryOperator<T>?

2. Hva er hovedmetoden i grensesnittet BinaryOperator<T>?

3. Hvilket grensesnitt er forelder til BinaryOperator<T>?

4. Hva vil følgende kode skrive ut?

question mark

Hva er hovedformålet med det funksjonelle grensesnittet BinaryOperator<T>?

Select the correct answer

question mark

Hva er hovedmetoden i grensesnittet BinaryOperator<T>?

Select the correct answer

question mark

Hvilket grensesnitt er forelder til BinaryOperator<T>?

Select the correct answer

question mark

Hva vil følgende kode skrive ut?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 1. Kapittel 15
some-alt