fanaavariA

علم و فناوری

fanaavariA

علم و فناوری

علم و فناوری

بایگانی
  • ۰
  • ۰

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

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

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

خروجی

۱, ۲, ۳, ۴, ۵, ۶

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

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

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

خروجی

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

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

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

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

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

  • ۹۹/۰۳/۲۷
  • فاطمه کریمی

نظرات (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی