English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
في هذا الدرس، سنتعلم الخوارزميات المختلفة التي يقدمها إطار الجمعية Java من خلال أمثلة.
يقدم إطار الجمعية Java مجموعة متنوعة من الخوارزميات التي يمكن استخدامها لمعالجة العناصر الموجودة في بنية البيانات.
الخوارزميات في Java هي طرق ثابتة يمكن استخدامها للقيام بعمليات مختلفة على المجموعات.
بما أن الخوارزميات يمكن استخدامها مع أنواع مختلفة من المجموعات، فإنها تُسمى أيضًاالخوارزميات العامة.
لنرى كيفية تنفيذ مختلف الطرق المتاحة في إطار الجمعية.
يقدم طريقة sort() في إطار الجمعية مجموعة فرعية لترتيب العناصر. على سبيل المثال،
إدراج java.util.ArrayList; إدراج java.util.Collections; class Main { public static void main(String[] args) { //إنشاء قائمة بالأعداد ArrayList<Integer> numbers = new ArrayList<>(); //إضافة عنصر numbers.add(4); numbers.add(2); numbers.add(3); System.out.println("مجموعة ArrayList غير منسقة: " + numbers); //استخدام طريقة sort() Collections.sort(numbers); System.out.println("مجموعة ArrayList منسقة: " + numbers); } }
نتيجة الخرج
مجموعة ArrayList غير منسقة: [4, 2, 3] مجموعة ArrayList منسقة: [2, 3, 4]
في هذا السياق، يتم الترتيب بترتيب طبيعي (ترتيب تصاعدي). ولكن يمكننا استخدام واجهة Comparator لتحديد ترتيب طريقة sort().
للحصول على معلومات إضافية، يرجى زيارةترتيب Java.
يستخدم طريقة shuffle() في إطار Collections Java لخلط أي ترتيب يظهر في بنية البيانات. وظيفته عكس ترتيب الترتيب. على سبيل المثال
إدراج java.util.ArrayList; إدراج java.util.Collections; class Main { public static void main(String[] args) { //إنشاء قائمة بالأعداد ArrayList<Integer> numbers = new ArrayList<>(); //إضافة عنصر numbers.add(1); numbers.add(2); numbers.add(3); System.out.println("مجموعة ArrayList منسقة: " + numbers); //استخدام طريقة shuffle() Collections.shuffle(numbers); System.out.println("استخدام shuffle ArrayList: " + numbers); } }
نتيجة الخرج
مجموعة مرتبة ArrayList: [1, 2, 3] استخدام ArrayList مع shuffle: [2, 1, 3]
عند تشغيل البرنامج، سيعود طريقة shuffle() إلى مخرجات عشوائية.
يُستخدم خوارزمية الشفشير بشكل رئيسي في الألعاب التي تتطلب مخرجات عشوائية.
في Java، يقدم إطار العمل للمجموعات طرقًا مختلفة لمعالجة البيانات.
reverse() - عكس ترتيب العناصر
fill() - استبدال كل عنصر في المجموعة بمحدد
copy() - إنشاء نسخة من العناصر من مصدر إلى وجهة محددة
swap() - تبادل مواقع العناصر في المجموعة
addAll() - إضافة جميع عناصر المجموعة إلى مجموعة أخرى
على سبيل المثال،
إدراج java.util.Collections; إدراج java.util.ArrayList; class Main { public static void main(String[] args) { //إنشاء ArrayList ArrayList<Integer> numbers = new ArrayList<>(); numbers.add(1); numbers.add(2); System.out.println("ArrayList1: " + numbers); // استخدام reverse() Collections.reverse(numbers); System.out.println("عكس ArrayList1: " + numbers); // استخدام swap() Collections.swap(numbers, 0, 1); System.out.println("استخدام ArrayList1 swap(): " + numbers); ArrayList<Integer> newNumbers = new ArrayList<>(); // استخدام addAll newNumbers.addAll(numbers); System.out.println("استخدام ArrayList2 addAll(): " + newNumbers); // استخدام fill() Collections.fill(numbers, 0); System.out.println("استخدام ArrayList1 fill(): " + numbers); // استخدام copy() Collections.copy(newNumbers, numbers); System.out.println("استخدام ArrayList2 copy(): " + newNumbers); } }
نتيجة الخرج
ArrayList1: [1, 2] عكس ArrayList1: [2, 1] استخدام ArrayList1 swap(): [1, 2] استخدام ArrayList2 addALl(): [1, 2] ArrayList1 باستخدام fill(): [0, 0] ArrayList2 باستخدام copy(): [0, 0]
ملاحظةقبل تنفيذ طريقة copy()، يجب أن تكون حجم القوائم متساويًا.
يبحث طريقة binarySearch() في إطار جافا للجمعيات عن العنصر المحدد. إنه يعود إلى موقع العنصر في المجموعة المحددة. على سبيل المثال،
إدراج java.util.Collections; إدراج java.util.ArrayList; class Main { public static void main(String[] args) { //إنشاء ArrayList ArrayList<Integer> numbers = new ArrayList<>(); numbers.add(1); numbers.add(2); numbers.add(3); // استخدام binarySearch() int pos = Collections.binarySearch(numbers, 3); System.out.println("الموقع 3 هو " + pos); } }
نتيجة الخرج
الموقع 3 هو 2
ملاحظةقبل تنفيذ طريقة binarySearch()، يجب ترتيب المجموعة.
للحصول على معلومات إضافية، يرجى زيارةالبحث الثنائي لجافا.
frequency() - العودة إلى عدد مرات وجود العنصر في المجموعة
disjoint() - التحقق من أن لا يحتوي أي من مجموعتين على عناصر مشتركة
على سبيل المثال،
إدراج java.util.Collections; إدراج java.util.ArrayList; class Main { public static void main(String[] args) { //إنشاء ArrayList ArrayList<Integer> numbers = new ArrayList<>(); numbers.add(1); numbers.add(2); numbers.add(3); numbers.add(2); System.out.println("ArrayList1: " + numbers); int count = Collections.frequency(numbers, 2); System.out.println("عدد 2: " + count); ArrayList<Integer> newNumbers = new ArrayList<>(); newNumbers.add(5); newNumbers.add(6); System.out.println("ArrayList2: " + newNumbers); boolean value = Collections.disjoint(numbers, newNumbers); System.out.println("هل القوائم غير متقاطعة؟ " + value); } }
نتيجة الخرج
ArrayList1: [1, 2, 3, 2] عدد 2: 2 ArrayList2: [5, 6] هل القوائم غير متقاطعة؟ true
يستخدم طريقة min() و max() في إطار جافا للجمعيات للبحث عن الأصغر والأكبر. على سبيل المثال،
إدراج java.util.Collections; إدراج java.util.ArrayList; class Main { public static void main(String[] args) { //إنشاء ArrayList ArrayList<Integer> numbers = new ArrayList<>(); numbers.add(1); numbers.add(2); numbers.add(3); // استخدام min() int min = Collections.min(numbers); System.out.println("الرقم الأصغر: " + min); // استخدام max() int max = Collections.max(numbers); System.out.println("الرقم الأكبر: " + max); } }
نتيجة الخرج
الرقم الأصغر: 1 الرقم الأكبر: 3