A Java, funcions anònimes , també conegudes com a expressions lambda. Es va introduir a Java 8 com una manera de proporcionar un codi més concís i llegible. Ens permeten definir una funció en una única línia de codi sense haver de definir explícitament una classe o una interfície.
com sortir d'un bucle while java
Què és una funció anònima?
Una funció anònima és una funció que no té nom i no està vinculada a un identificador. Normalment es defineix en línia i es pot passar com a argument a una altra funció o retornar com a valor d'una funció. A Java, les funcions anònimes s'implementen com a expressions lambda, que són una manera abreujada de definir una funció anònima.
Sintaxi
La sintaxi d'una funció anònima a Java és la següent:
(parameters) -> { body }
Els paràmetres són les entrades de la funció, i el cos és el codi que s'executa quan es crida la funció. Aquí teniu un exemple d'una funció anònima que pren dos nombres enters com a entrades i retorna la seva suma:
(int a, int b) -> { return a + b; }
La funció anònima anterior es pot passar com a argument a una altra funció o assignar-se a una variable:
Function add = (a, b) -> a + b;
En aquest exemple, definim una variable anomenada sumar que és una funció que pren dos nombres enters com a entrades i retorna la seva suma.
Avantatges de les funcions anònimes
L'ús de funcions anònimes a Java té diversos avantatges, com ara:
Sintaxi concisa: Les funcions anònimes proporcionen una manera concisa de definir una funció sense haver de definir una classe o interfície separada.
Codi llegible: Com que les funcions anònimes es defineixen en línia, el codi pot ser més fàcil de llegir i entendre.
Flexibilitat: Les funcions anònimes es poden passar com a arguments a altres funcions o retornar com a valors de les funcions, proporcionant més flexibilitat en com s'utilitzen les funcions.
Rendiment millorat: L'ús de funcions anònimes pot millorar el rendiment reduint la quantitat de memòria i la potència de processament necessària per definir i cridar funcions.
Aquí teniu un exemple de codi Java que demostra l'ús de funcions anònimes (expressions lambda) per filtrar una llista d'enters:
AnonymousFunctionExample.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; } }
Sortida:
Even numbers: 2 4
En aquest codi, definim una llista d'enters i després fem servir una funció anònima (expressió lambda) per definir un predicat que filtra la llista per incloure només nombres parells. A continuació, utilitzem el mètode de filtre per aplicar el predicat a la llista i retornar una nova llista de nombres parells. Finalment, imprimim els nombres parells mitjançant un bucle for.
Aquí hi ha un altre exemple de codi Java que demostra l'ús de funcions anònimes (expressions lambda) per ordenar una llista de cadenes:
AnonymousFunctionExample.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); } } }
Sortida:
Sorted list of fruits: Apple Banana Grape Orange Pineapple
En el codi anterior, hem definit una llista de fruites i després hem utilitzat una funció anònima (expressió lambda) per definir un comparador que ordena la llista alfabèticament. A continuació, utilitzem el mètode d'ordenació per aplicar el comparador a la llista i ordenar-la. Finalment, imprimim la llista ordenada de fruites mitjançant un bucle for.
Conclusió
Les funcions anònimes a Java proporcionen una manera concisa i llegible de definir funcions sense haver de definir una classe o interfície separada. Es poden utilitzar per millorar el rendiment del codi i oferir més flexibilitat en com s'utilitzen les funcions. Amb la introducció de les expressions lambda a Java 8, les funcions anònimes s'han convertit en una eina important perquè els desenvolupadors escriguin codi més eficient i fàcil de mantenir.