logo

وظيفة مجهولة في جافا

في جافا، وظائف مجهولة ، والمعروفة أيضًا باسم تعبيرات لامدا. تم تقديمه في Java 8 كوسيلة لتوفير كود أكثر إيجازًا وقابلية للقراءة. إنها تسمح لنا بتعريف دالة في سطر واحد من التعليمات البرمجية دون الحاجة إلى تحديد فئة أو واجهة بشكل صريح.

اختصارات لوحة المفاتيح لينكس

ما هي وظيفة مجهولة؟

الوظيفة المجهولة هي وظيفة ليس لها اسم وليست مرتبطة بمعرف. يتم تعريفه عادةً بشكل سطري ويمكن تمريره كوسيطة إلى دالة أخرى أو إرجاعه كقيمة من دالة. في Java، يتم تنفيذ الوظائف المجهولة كتعبيرات لامدا، وهي طريقة مختصرة لتعريف وظيفة مجهولة.

بناء الجملة

بناء جملة وظيفة مجهولة في Java كما يلي:

 (parameters) -> { body } 

المعلمات هي مدخلات الوظيفة، والنص هو الكود الذي يتم تنفيذه عند استدعاء الوظيفة. فيما يلي مثال لدالة مجهولة تأخذ عددين صحيحين كمدخلين وترجع مجموعهما:

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

يمكن تمرير الوظيفة المجهولة أعلاه كوسيطة لوظيفة أخرى أو تعيينها لمتغير:

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

في هذا المثال، قمنا بتعريف متغير يسمى add وهو دالة تأخذ عددين صحيحين كمدخلين وترجع مجموعهما.

مزايا الوظائف المجهولة

استخدام الوظائف المجهولة في Java له العديد من المزايا، بما في ذلك:

بناء الجملة موجزة: توفر الوظائف المجهولة طريقة مختصرة لتعريف دالة دون الحاجة إلى تحديد فئة أو واجهة منفصلة.

كود قابل للقراءة: ونظرًا لأن الوظائف المجهولة محددة بشكل مضمّن، فقد يكون من الأسهل قراءة التعليمات البرمجية وفهمها.

المرونة: يمكن تمرير الوظائف المجهولة كوسائط إلى وظائف أخرى أو إرجاعها كقيم من الوظائف، مما يوفر المزيد من المرونة في كيفية استخدام الوظائف.

تحسين الأداء: يمكن أن يؤدي استخدام الوظائف المجهولة إلى تحسين الأداء عن طريق تقليل مقدار الذاكرة وقوة المعالجة المطلوبة لتحديد الوظائف واستدعاءها.

فيما يلي مثال لتعليمة جافا البرمجية التي توضح استخدام الوظائف المجهولة (تعبيرات لامدا) لتصفية قائمة الأعداد الصحيحة:

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

انتاج:

 Even numbers: 2 4 

في هذا الكود، نحدد قائمة من الأعداد الصحيحة ثم نستخدم وظيفة مجهولة (تعبير لامدا) لتحديد مسند يقوم بتصفية القائمة لتتضمن أرقامًا زوجية فقط. نستخدم بعد ذلك طريقة التصفية لتطبيق المسند على القائمة وإرجاع قائمة جديدة من الأرقام الزوجية. وأخيرًا، نقوم بطباعة الأعداد الزوجية باستخدام حلقة for.

فيما يلي مثال آخر لرمز Java الذي يوضح استخدام الوظائف المجهولة (تعبيرات lambda) لفرز قائمة السلاسل:

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

انتاج:

 Sorted list of fruits: Apple Banana Grape Orange Pineapple 

في الكود أعلاه، قمنا بتعريف قائمة الفواكه ثم استخدمنا دالة مجهولة (تعبير لامدا) لتحديد مقارنة تقوم بفرز القائمة أبجديًا. نستخدم بعد ذلك طريقة الفرز لتطبيق المقارنة على القائمة وفرزها. أخيرًا، نقوم بطباعة قائمة الفواكه التي تم فرزها باستخدام حلقة for.

خاتمة

توفر الوظائف المجهولة في Java طريقة مختصرة وسهلة القراءة لتعريف الوظائف دون الحاجة إلى تحديد فئة أو واجهة منفصلة. يمكن استخدامها لتحسين أداء التعليمات البرمجية وتوفير المزيد من المرونة في كيفية استخدام الوظائف. مع تقديم تعبيرات lambda في Java 8، أصبحت الوظائف المجهولة أداة مهمة للمطورين لكتابة تعليمات برمجية أكثر كفاءة وقابلة للصيانة.