logo

Anonieme functie in Java

Op Java, anonieme functies , ook bekend als lambda-expressies. Het werd in Java 8 geïntroduceerd als een manier om beknoptere en leesbare code te bieden. Ze stellen ons in staat een functie in een enkele coderegel te definiëren zonder expliciet een klasse of interface te hoeven definiëren.

retourneert een array-Java

Wat is een anonieme functie?

Een anonieme functie is een functie die geen naam heeft en niet gebonden is aan een ID. Het wordt doorgaans inline gedefinieerd en kan als argument aan een andere functie worden doorgegeven of als waarde van een functie worden geretourneerd. In Java worden anonieme functies geïmplementeerd als lambda-expressies, wat een verkorte manier is om een ​​anonieme functie te definiëren.

Syntaxis

De syntaxis voor een anonieme functie in Java is als volgt:

 (parameters) -> { body } 

De parameters zijn de invoer voor de functie en de body is de code die wordt uitgevoerd wanneer de functie wordt aangeroepen. Hier is een voorbeeld van een anonieme functie die twee gehele getallen als invoer gebruikt en hun som retourneert:

 (int a, int b) -> { return a + b; } 

De bovenstaande anonieme functie kan als argument aan een andere functie worden doorgegeven of aan een variabele worden toegewezen:

 Function add = (a, b) -> a + b; 

In dit voorbeeld definiëren we een variabele genaamd add, een functie die twee gehele getallen als invoer neemt en hun som retourneert.

Voordelen van anonieme functies

Het gebruik van anonieme functies in Java heeft verschillende voordelen, waaronder:

Beknopte syntaxis: Anonieme functies bieden een beknopte manier om een ​​functie te definiëren zonder dat u een afzonderlijke klasse of interface hoeft te definiëren.

Leesbare code: Omdat anonieme functies inline worden gedefinieerd, kan de code gemakkelijker te lezen en te begrijpen zijn.

Flexibiliteit: Anonieme functies kunnen worden doorgegeven als argumenten aan andere functies of worden geretourneerd als waarden uit functies, waardoor er meer flexibiliteit ontstaat in de manier waarop functies worden gebruikt.

Verbeterde prestatie: Het gebruik van anonieme functies kan de prestaties verbeteren door de hoeveelheid geheugen en verwerkingskracht te verminderen die nodig is om functies te definiëren en aan te roepen.

hier is een voorbeeld van Java-code die het gebruik van anonieme functies (lambda-expressies) demonstreert om een ​​lijst met gehele getallen te filteren:

AnoniemFunctieVoorbeeld.java

 import java.util.ArrayList; import java.util.List; import java.util.function.Predicate; public class AnonymousFunctionExample { public static void main(String[] args) { List numbers = new ArrayList(); numbers.add(1); numbers.add(2); numbers.add(3); numbers.add(4); numbers.add(5); // Filter the list to only include even numbers Predicate isEven = (n) -> n % 2 == 0; List evenNumbers = filter(numbers, isEven); // Print the even numbers System.out.println('Even numbers:'); for (Integer number : evenNumbers) { System.out.println(number); } } // Filter a list using a predicate public static List filter(List list, Predicate predicate) { List result = new ArrayList(); for (T element : list) { if (predicate.test(element)) { result.add(element); } } return result; } } 

Uitgang:

 Even numbers: 2 4 

In deze code definiëren we een lijst met gehele getallen en gebruiken we vervolgens een anonieme functie (lambda-expressie) om een ​​predikaat te definiëren dat de lijst filtert zodat deze alleen even getallen bevat. Vervolgens gebruiken we de filtermethode om het predikaat op de lijst toe te passen en een nieuwe lijst met even getallen terug te geven. Tenslotte printen we de even getallen uit met behulp van een for-lus.

Hier is nog een voorbeeld van Java-code die het gebruik van anonieme functies (lambda-expressies) demonstreert om een ​​lijst met tekenreeksen te sorteren:

AnoniemFunctieVoorbeeld.java

 import java.util.ArrayList; import java.util.Comparator; import java.util.List; public class AnonymousFunctionExample { public static void main(String[] args) { List fruits = new ArrayList(); fruits.add('Apple'); fruits.add('Banana'); fruits.add('Grape'); fruits.add('Orange'); fruits.add('Pineapple'); // Sort the list of fruits alphabetically fruits.sort((f1, f2) -> f1.compareTo(f2)); // Print the sorted list of fruits System.out.println('Sorted list of fruits:'); for (String fruit : fruits) { System.out.println(fruit); } } } 

Uitgang:

 Sorted list of fruits: Apple Banana Grape Orange Pineapple 

In de bovenstaande code hebben we een lijst met fruit gedefinieerd en vervolgens een anonieme functie (lambda-expressie) gebruikt om een ​​comparator te definiëren die de lijst alfabetisch sorteert. Vervolgens gebruiken we de sorteermethode om de comparator op de lijst toe te passen en te sorteren. Ten slotte printen we de gesorteerde lijst met fruit met behulp van een for-lus.

Conclusie

Anonieme functies in Java bieden een beknopte en leesbare manier om functies te definiëren zonder dat u een aparte klasse of interface hoeft te definiëren. Ze kunnen worden gebruikt om de prestaties van code te verbeteren en meer flexibiliteit te bieden in de manier waarop functies worden gebruikt. Met de introductie van lambda-expressies in Java 8 zijn anonieme functies een belangrijk hulpmiddel geworden voor ontwikkelaars om efficiëntere en onderhoudbare code te schrijven.