برنامه نویسی

5.5 سفارش توسط امتیاز و autoboxing

1 امتیاز سفارش به جای نام

  • برای سفارش کاربران برای میزان امتیاز ، به سادگی Lambda گذشته را تغییر دهید:

usuarios.sort(Comparator.comparing(u -> u.getPontos()));

  • این کد را می توان برای درک بهتر شکسته کرد:

Function extraiPontos = u -> u.getPontos();
Comparator comparator = Comparator.comparing(extraiPontos);
usuarios.sort(comparator);

2 مشکل autoboxing

  • روش GetPontos () یک INT را برمی گرداند ، اما عملکرد با عدد صحیح کار می کند.

  • این باعث می شود که Autoboxing ، تبدیل به Int به طور مکرر به طور مکرر ، که می تواند بر عملکرد تأثیر بگذارد.

  • این مشکل اغلب در API های جدید جاوا 8 رخ می دهد.

3 راه حل: از عملکرد و مقایسه استفاده کنید

  • برای جلوگیری از اتوبوکس ، از عملکرد استفاده می شود ، که مستقیماً با INT کار می کند:

ToIntFunction extraiPontos = u -> u.getPontos();
Comparator comparator = Comparator.comparingInt(extraiPontos);
usuarios.sort(comparator);

  • نسخه لاغر کد:

usuarios.sort(Comparator.comparingInt(u -> u.getPontos()));

  • این رویکرد با از بین بردن تبدیل های غیر ضروری ، کارایی سفارش را بهبود می بخشد.

بایگانی: ordinacaopontos.java

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا