আমি পূর্ণসংখ্যার একটি তালিকা যোগ করতে চাই। এটি নিম্নলিখিত হিসাবে কাজ করে তবে সিনট্যাক্সটি ঠিক মনে হয় না। কোডটি অনুকূলিত হতে পারে?
Map<String, Integer> integers;
integers.values().stream().mapToInt(i -> i).sum();
i -> i
ব্যক্তিগতভাবে খুব পরিষ্কার দেখতে পাই । ঠিক আছে, হ্যাঁ আপনার জানা দরকার যে মানটি স্বয়ংক্রিয়ভাবে আনবক্সড হবে, তবে জাভা 5 এর পর থেকে এটি সত্য ...
foo(int i)
লেখেন না foo(myInteger.intValue());
(বা কমপক্ষে আমি প্রত্যাশা করি না !!)। আমি আপনার সাথে একমত হয়েছি Integer::intValue
যা আরও স্পষ্ট হয় তবে আমি মনে করি এটি এখানে প্রযোজ্য। লোকেরা একবারে এটি শিখতে হবে এবং তারপরে আপনি শেষ করেছেন :-)। এটি কিছু ম্যাজিক আবদ্ধতা ছিল তা পছন্দ করে না।
i -> i
কোন সমিতি এবং conceptionally মত দেখাচ্ছে, এটা হল একটি নো অপ। অবশ্যই, ফণা নীচে Integer.intValue()
ডাকা হয়, কিন্তু ফণা অধীনে আরও গভীর, যে পদ্ধতি উত্স কোড এর মত দেখতে ঠিক কোন অপ-হতে পরিণত হয়। Integer::intValue
বাইট কোডে একটি সিনথেটিক পদ্ধতি তৈরি না করার বোনাস পয়েন্ট রয়েছে তবে কীভাবে আপনার উত্স কোডটি সংগঠিত করবেন সে সম্পর্কে আপনার সিদ্ধান্তটি চালানো উচিত নয়।
mapToLong
আপনার মানচিত্রের যে মান থাকতে পারে তার উপর নির্ভর করে আপনি ওভারফ্লো এড়াতে ব্যবহার করতে চান ।