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[](যদি সংকলক এটি অনুকূল না করে)