آموزش كپي آرايه هاي جاوا

۱,۷۱۳ بازديد

۱- كپي كردن آرايه ها با استفاده از عملگر انتساب

بياييد مثالي بزنيم ،

  1. class CopyArray {
  2. public static void main(String[] args) {
  3. int [] numbers = {1, 2, 3, 4, 5, 6};
  4. int [] positiveNumbers = numbers; // copying arrays
  5. for (int number: positiveNumbers) {
  6. System.out.print(number + “, “);
  7. }
  8. }
  9. }

خروجي

۱, ۲, ۳, ۴, ۵, ۶

اگرچه به نظر مي رسد اين روش براي كپي كردن آرايه ها كاملا كارآمد است ، اما مشكلي در اين مورد وجود دارد.

اگر عناصر يك آرايه را در مثال بالا تغيير دهيد ، عناصر مربوط به آرايه ديگر نيز تغيير مي كند.

  1. class AssignmentOperator {
  2. public static void main(String[] args) {
  3. int [] numbers = {1, 2, 3, 4, 5, 6};
  4. int [] positiveNumbers = numbers; // copying arrays
  5. numbers[0] = -1;
  6. for (int number: positiveNumbers) {
  7. System.out.print(number + “, “);
  8. }
  9. }
  10. }

خروجي

-۱, ۲, ۳, ۴, ۵, ۶

هنگامي كه اولين عنصر آرايه numbers به -۱ تغيير مي كند، اولين عنصر آرايه positiveNumbers نيز به -۱ تبديل مي شود. به اين دليل كه هر دو آرايه به يك شيء آرايه يكسان اشاره دارند.

به اين كار كپي سطحي گفته مي شود.

با اين حال ، بيشتر اوقات ، به جاي كپي سطحي ، به كپي عميق نياز داريم. يك كپي عميق مقادير ايجاد شي آرايه جديد را كپي مي كند.

ادامه مطلب...

تا كنون نظري ثبت نشده است
ارسال نظر آزاد است، اما اگر قبلا در مونوبلاگ ثبت نام کرده اید می توانید ابتدا وارد شوید.