Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Binaryoperator: Twee Waarden Combineren | Fundamenten en Functionele Mogelijkheden van Stream API
Stream-API

bookBinaryoperator: Twee Waarden Combineren

Deze interface is bijzonder nuttig bij het combineren van twee waarden van hetzelfde type, zoals het uitvoeren van wiskundige berekeningen of het samenvoegen van gegevens.

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

De BinaryOperator<T> interface breidt BiFunction<T, T, T> uit, maar in tegenstelling tot BiFunction moeten zowel de invoervariabelen als de returnwaarde altijd van hetzelfde type T zijn.

De enige abstracte methode, apply(T t1, T t2), voert een bewerking uit op twee argumenten en geeft het resultaat terug.

Praktisch Voorbeeld

Stel, u heeft een loonadministratiesysteem waarin u moet bepalen welke van twee bonussenjaarlijks of per kwartaalhoger is, zodat het grotere bedrag kan worden toegekend aan een werknemer.

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); } }

In dit voorbeeld maakt u een BinaryOperator<Double> aan die Math.max() gebruikt om twee waarden te vergelijken en de grootste te retourneren.

Vervolgens definieert u twee bonussen: annualBonus (jaarlijkse bonus) en quarterlyBonus (kwartaalbonus).

De methode apply() wordt aangeroepen om de hoogste bonus te bepalen, en het resultaat wordt afgedrukt op de console. Deze benadering is nuttig wanneer u dynamisch de beste optie wilt selecteren zonder complexe voorwaardelijke logica.

Statische methoden

Naast de primaire apply() methode bevat BinaryOperator<T> verschillende nuttige statische methoden:

  • maxBy(Comparator<T> comparator) – retourneert een BinaryOperator<T> die de grotere van twee waarden selecteert op basis van de opgegeven Comparator<T>;
  • minBy(Comparator<T> comparator) – retourneert een BinaryOperator<T> die de kleinere van twee waarden selecteert op basis van de opgegeven Comparator<T>.

Voorbeeld van gebruik

Stel dat er een personeelsbeheersysteem is waarin bepaald moet worden welke van twee kandidaten een hogere beoordeling heeft om zo de beste te selecteren voor een promotie.

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; } }

De methode BinaryOperator.maxBy() neemt een Comparator<Employee>, die Employee::getRating gebruikt om werknemers te vergelijken op basis van hun beoordelingen.

Twee Employee-objecten worden vervolgens aangemaakt met verschillende beoordelingen. De methode apply() selecteert de werknemer met de hoogste beoordeling en drukt hun naam af.

1. Wat is het belangrijkste doel van de functionele interface BinaryOperator<T>?

2. Wat is de primaire methode in de interface BinaryOperator<T>?

3. Welke interface is de bovenliggende van BinaryOperator<T>?

4. Wat zal de volgende code als uitvoer geven?

question mark

Wat is het belangrijkste doel van de functionele interface BinaryOperator<T>?

Select the correct answer

question mark

Wat is de primaire methode in de interface BinaryOperator<T>?

Select the correct answer

question mark

Welke interface is de bovenliggende van BinaryOperator<T>?

Select the correct answer

question mark

Wat zal de volgende code als uitvoer geven?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 1. Hoofdstuk 15

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

Awesome!

Completion rate improved to 2.33

bookBinaryoperator: Twee Waarden Combineren

Veeg om het menu te tonen

Deze interface is bijzonder nuttig bij het combineren van twee waarden van hetzelfde type, zoals het uitvoeren van wiskundige berekeningen of het samenvoegen van gegevens.

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

De BinaryOperator<T> interface breidt BiFunction<T, T, T> uit, maar in tegenstelling tot BiFunction moeten zowel de invoervariabelen als de returnwaarde altijd van hetzelfde type T zijn.

De enige abstracte methode, apply(T t1, T t2), voert een bewerking uit op twee argumenten en geeft het resultaat terug.

Praktisch Voorbeeld

Stel, u heeft een loonadministratiesysteem waarin u moet bepalen welke van twee bonussenjaarlijks of per kwartaalhoger is, zodat het grotere bedrag kan worden toegekend aan een werknemer.

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); } }

In dit voorbeeld maakt u een BinaryOperator<Double> aan die Math.max() gebruikt om twee waarden te vergelijken en de grootste te retourneren.

Vervolgens definieert u twee bonussen: annualBonus (jaarlijkse bonus) en quarterlyBonus (kwartaalbonus).

De methode apply() wordt aangeroepen om de hoogste bonus te bepalen, en het resultaat wordt afgedrukt op de console. Deze benadering is nuttig wanneer u dynamisch de beste optie wilt selecteren zonder complexe voorwaardelijke logica.

Statische methoden

Naast de primaire apply() methode bevat BinaryOperator<T> verschillende nuttige statische methoden:

  • maxBy(Comparator<T> comparator) – retourneert een BinaryOperator<T> die de grotere van twee waarden selecteert op basis van de opgegeven Comparator<T>;
  • minBy(Comparator<T> comparator) – retourneert een BinaryOperator<T> die de kleinere van twee waarden selecteert op basis van de opgegeven Comparator<T>.

Voorbeeld van gebruik

Stel dat er een personeelsbeheersysteem is waarin bepaald moet worden welke van twee kandidaten een hogere beoordeling heeft om zo de beste te selecteren voor een promotie.

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; } }

De methode BinaryOperator.maxBy() neemt een Comparator<Employee>, die Employee::getRating gebruikt om werknemers te vergelijken op basis van hun beoordelingen.

Twee Employee-objecten worden vervolgens aangemaakt met verschillende beoordelingen. De methode apply() selecteert de werknemer met de hoogste beoordeling en drukt hun naam af.

1. Wat is het belangrijkste doel van de functionele interface BinaryOperator<T>?

2. Wat is de primaire methode in de interface BinaryOperator<T>?

3. Welke interface is de bovenliggende van BinaryOperator<T>?

4. Wat zal de volgende code als uitvoer geven?

question mark

Wat is het belangrijkste doel van de functionele interface BinaryOperator<T>?

Select the correct answer

question mark

Wat is de primaire methode in de interface BinaryOperator<T>?

Select the correct answer

question mark

Welke interface is de bovenliggende van BinaryOperator<T>?

Select the correct answer

question mark

Wat zal de volgende code als uitvoer geven?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 1. Hoofdstuk 15
some-alt