টিএল; ডিআর: Iterables.size(Iterable)
দুর্দান্ত পেয়ারা গ্রন্থাগারের ইউটিলিটি পদ্ধতিটি ব্যবহার করুন ।
আপনার দুটি কোড স্নিপেটের মধ্যে আপনার প্রথমটি ব্যবহার করা উচিত, কারণ দ্বিতীয়টি এতে থেকে সমস্ত উপাদান সরিয়ে ফেলবে values
, সুতরাং এটি পরে খালি। এর আকারের মতো সাধারণ ক্যোয়ারির জন্য ডেটা কাঠামো পরিবর্তন করা খুব অপ্রত্যাশিত।
পারফরম্যান্সের জন্য, এটি আপনার ডেটা কাঠামোর উপর নির্ভর করে। যদি এটি উদাহরণস্বরূপ হয় একটি ArrayList
, শুরু থেকে উপাদানগুলি অপসারণ (আপনার দ্বিতীয় পদ্ধতিটি কী করছে) খুব ধীর (আকার নির্ধারণ করা ও (এন * এন) এর পরিবর্তে ও (এন) হিসাবে হওয়া উচিত)।
সাধারণভাবে, যদি এমন সুযোগ থাকে যা values
প্রকৃতপক্ষে কেবলমাত্র একটিই Collection
নয় তবে এটি Iterable
পরীক্ষা করে দেখুন এবং কল করুন size()
:
if (values instanceof Collection<?>) {
return ((Collection<?>)values).size();
}
থেকে কল size()
ইচ্ছা সাধারণত অনেক দ্রুত উপাদানের সংখ্যা বেড়ে চলেছে চেয়ে, এবং এই কৌতুক ঠিক কি Iterables.size(Iterable)
এর পেয়ারা তোমার জন্য না।