Array<Int>
Integer[]
হুডের নীচে একটি , যখন IntArray
একটি int[]
। এটাই.
এর মানে হল যখন আপনি একটি করা Int
একটি ইন Array<Int>
, এটা সবসময় boxed করা হবে (বিশেষত একটি সঙ্গে Integer.valueOf()
কল)। ক্ষেত্রে IntArray
, কোনও বক্সিং ঘটবে না, কারণ এটি জাভা আদিম অ্যারেতে অনুবাদ করে।
উপরের সম্ভাব্য পারফরম্যান্সের প্রভাবগুলি ব্যতীত, বিবেচনা করার সুবিধাও রয়েছে। আদিম অ্যারেগুলি অবিচ্ছিন্ন করে ছেড়ে দেওয়া যেতে পারে এবং 0
সমস্ত সূচীতে এগুলির ডিফল্ট মান থাকবে । এ কারণেই IntArray
এবং বাকি আরিমের বাকী অংশগুলিতে এমন কনস্ট্রাক্টর রয়েছে যা কেবল আকার আকারের প্যারামিটার নেয়:
val arr = IntArray(10)
println(arr.joinToString())
বিপরীতে, Array<T>
এমন কোনও কনস্ট্রাক্টর নেই যা কেবল আকার আকারের প্যারামিটার নেয়: এটি T
তৈরির পরে সমস্ত সূচীতে বৈধ, নন-নাল উদাহরণ প্রয়োজন। জন্য Number
ধরনের, এই একটি ডিফল্ট হতে পারে 0
, কিন্তু একটি অবাধ ধরনের ডিফল্ট দৃষ্টান্ত তৈরি করতে কোন উপায় T
।
সুতরাং যখন একটি তৈরি করার সময় Array<Int>
আপনি হয় এমন কন্সট্রাক্টর ব্যবহার করতে পারেন যা প্রারম্ভিকরূপে কাজ করে:
val arr = Array<Int>(10) { index -> 0 }
val arr = Array(10) { 0 }
অথবা Array<Int?>
প্রতিটি মানকে আরম্ভ করার জন্য এড়ানোর জন্য তৈরি করুন তবে তারপরে আপনি null
যখন অ্যারে থেকে পড়বেন তখন আপনাকে সম্ভাব্য মানগুলি নিয়ে ডিল করতে বাধ্য হবে ।
val arr = arrayOfNulls<Int>(10)
Array<Int>
সংকলন করেInteger[]
(যদি সংকলক এটি অনুকূল না করে)