البرمجة

كيفية الحصول على أعلى قيمة في Java 8 من قائمة العناصر

لديك قائمة فارغة من الأعداد الصحيحة وتريد ملء هذه القائمة بخاصية “marker” من قائمة من الكائنات، ثم الحصول على أعلى قيمة للعلامة “marker”. يمكنك تحقيق هذا باستخدام Java 8 Streams والتلاعب بالبيانات بطريقة أكثر فعالية. إليك كيفية القيام بذلك:

java
// ملء القائمة reservedMarkers بقيم "marker" من قائمة scheduleIntervalContainers scheduleIntervalContainers.stream() .map(ScheduleIntervalContainer::getMarker) // استخراج العلامة "marker" من كل كائن .forEach(reservedMarkers::add); // إضافة العلامة إلى القائمة reservedMarkers // الحصول على أعلى قيمة للعلامة "marker" من القائمة reservedMarkers OptionalInt maxMarker = reservedMarkers.stream() .mapToInt(Integer::intValue) // تحويل القيم Integer إلى قيم int .max(); // الحصول على أعلى قيمة // التحقق مما إذا كانت القائمة غير فارغة والحصول على أعلى قيمة، أو الحصول على قيمة افتراضية إذا كانت القائمة فارغة int highestMarker = maxMarker.orElse(0);

بهذه الطريقة، يتم استخراج قيم “marker” من كل كائن في قائمة scheduleIntervalContainers ووضعها في القائمة reservedMarkers. ثم يتم استخدام Stream آخر للحصول على أعلى قيمة من القائمة reservedMarkers.

المزيد من المعلومات

بالطبع! في هذا السياق، يُفضل استخدام mapToInt بدلاً من map لتحويل القيم Integer إلى int مباشرةً. هذا يقلل من الحاجة إلى تحويل الأنواع الضرورية في كل مرة تقوم فيها بالعمليات الحسابية، مما يجعل الكود أكثر فعالية من حيث الأداء.

وفيما يتعلق بالحصول على أعلى قيمة في القائمة reservedMarkers، يمكنك أيضًا استخدام الطريقة reduce بدلاً من max، وذلك كما يلي:

java
// الحصول على أعلى قيمة للعلامة "marker" من القائمة reservedMarkers int highestMarker = reservedMarkers.stream() .mapToInt(Integer::intValue) // تحويل القيم Integer إلى قيم int .reduce(Integer.MIN_VALUE, Integer::max); // الحصول على أعلى قيمة

تعتبر هذه الطريقة أقل تعقيدًا وتوفيرًا للوقت، حيث تحصل على أعلى قيمة مباشرة دون الحاجة إلى فرز القائمة أولاً.

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر