الحد الأدنى والحد الأقصى للصفيف في Java

كما نقول ونكرر ، توفر Java طرقا محددة مسبقا بفضل مفهومها الموجه للكائنات ، مما يجعل البرمجة أسهل بالنسبة لنا ، ولكن من خلال برمجة هذه الطرق بأنفسنا ، فإنها تساعدنا على التدرب قليلا والحفاظ على شكلنا. بالعودة إلى موضوعنا الرئيسي ، للعثور على الحد الأقصى والحد الأدنى للقيمة في صفيف من العناصر n ، عليك أن تعرف أنه من الضروري تصفح المصفوفة بأكملها من العنصر الأول إلى العنصر الأخير أثناء مقارنة أكبر / أصغر عنصر تم العثور عليه حتى الآن مع العنصر الحالي.

في الأمثلة الواردة في هذه المقالة ، سنقدم الحلول الأربعة لإيجاد الحد الأدنى والحد الأقصى للقيمة في المصفوفة:

- حل ساذج < br / >- Java 8
- مكتبة واجهة برمجة تطبيقات الجوافة من Google
- مكتبة Apache Commons

Here برنامج Java يقوم بإرجاع قيمة وموضع أصغر قيمة في صفيف.

public class min_max_array {
الفراغ العام الثابت الرئيسي (String[] args) {
int maxVal = Integer.MAX_VALUE;
int minVal = Integer.MIN_VALUE;

int array[] = {51, 24, 19, 5, 37, 76, 61, 99, 101, 36};

ل (int number:array)
System.out.print(number+" ");

for(int i = 0; i < array.length; i++){
if(array[i] < maxVal)
maxVal = array[i];
if (ararray [i] > minVal)
minVal = ararray [i] ؛
}

System.out.print("\nالحد الأدنى للقيمة = "+maxVal);
System.out.print("\nMaximum value = "+minVal);
} < br / >}
< / pre>وقت التشغيل :

< pre class = "prettyprint lang-java" >51 24 19 5 37 76 61 99 101 36
الحد الأدنى للقيمة = 5
القيمة القصوى = 101< / pre>يقوم المثال أولا بتهيئة نمط المتغير minVal< / span> مع نمط Integer.MAX_VALUE< / span > وهي القيمة الأكبر التي int< / span> يمكن أن تأخذ. يتم ذلك للتأكد من أن القيمة الأولية ليست أصغر عن طريق الخطأ من القيمة الأولى في المصفوفة.
ثانيا ، يمر البرنامج عبر المصفوفة ويقارن كل قيمة مع  < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >دقيقة< / سبان>. إذا كان العنصر في  الجدول أصغر من  < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >دقيقة  لذلك  < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >دقيقة  يتلقى قيمة هذا العنصر.
أخيرا ، يتم عرض الحد الأدنى للقيمة الموجودة في المصفوفة.

Java 8

باستخدام Java 8 ، من السهل العثور على أكبر وأصغر رقم. في الكود الأول ، نقوم بتحويل صفيف إلى دفق ، ثم نسمي الطريقة Arrays.stream().max() الذي يرجع OptionalInt ويحتوي على أكبر قيمة تم العثور عليها.
يستخدم الكود الثاني IntStream ، وهو دفق متخصص في الأوليات int ، ومن هنا يمكن استدعاء intStream.of().max() الذي يرجع OptionalInt.

public void max_array_java8 (int[] tab) {
OptionalInt max = Arrays.stream(tab).max();
//or
اختياري كحد أقصى = IntStream.of (علامة التبويب) .max ();
}
public void min_array_java8 (int[] tab) {
OptionalInt min = Arrays.stream(tab).min();
//or
اختياري Int min = IntStream.of(tab).min();
}

توفر واجهة برمجة تطبيقات الجوافة من Google

Ints من الجوافة طريقتينInts.max () < / span > و Ints.min() التي ترجع أكبر وأصغر قيمة على التوالي. لتتمكن من استخدام واجهة برمجة التطبيقات هذه ، قم بتنزيلها من الموقع الرسمي ل Google Guava.
à
public int static int max_array_guava (int[] tab) {
int max = Ints.max(tab);
العائد كحد أقصى ؛
}
int min_array_guava ثابت عام (int[] tab) {
int min = Ints.min(tab);
حد أدنى للعودة ؛
}

Apache Commons

توفر فئة NumberUtils من Apache commons وظائف إضافية لجافا وتحتوي على طريقتينNumberUtils.max () < / span > و NumberUtils.min() التي ترجع أكبر وأصغر قيمة على التوالي. لتتمكن من استخدام هذه المكتبة ، قم بتنزيلها من الموقع الرسمي ل api Apache Commons.

public static int max_array_apache (int[] tab) {
int max = NumberUtils.max(tab);
العائد كحد أقصى ؛
}
int min_array_apache ثابت عام (int[] tab) {
int min = NumberUtils.min(tab);
حد أدنى للعودة ؛
}
المراجع:
Find Min & الحد الأقصى في صفيف باستخدام الحد الأدنى من المقارنات