آموزش کپی آرایه های جاوا
1- کپی کردن آرایه ها با استفاده از عملگر انتساب
بیایید مثالی بزنیم ،
- class CopyArray {
- public static void main(String[] args) {
- int [] numbers = {1, 2, 3, 4, 5, 6};
- int [] positiveNumbers = numbers; // copying arrays
- for (int number: positiveNumbers) {
- System.out.print(number + “, “);
- }
- }
- }
خروجی
1, 2, 3, 4, 5, 6
اگرچه به نظر می رسد این روش برای کپی کردن آرایه ها کاملا کارآمد است ، اما مشکلی در این مورد وجود دارد.
اگر عناصر یک آرایه را در مثال بالا تغییر دهید ، عناصر مربوط به آرایه دیگر نیز تغییر می کند.
- class AssignmentOperator {
- public static void main(String[] args) {
- int [] numbers = {1, 2, 3, 4, 5, 6};
- int [] positiveNumbers = numbers; // copying arrays
- numbers[0] = -1;
- for (int number: positiveNumbers) {
- System.out.print(number + “, “);
- }
- }
- }
خروجی
-1, 2, 3, 4, 5, 6
هنگامی که اولین عنصر آرایه numbers به -1 تغییر می کند، اولین عنصر آرایه positiveNumbers نیز به -1 تبدیل می شود. به این دلیل که هر دو آرایه به یک شیء آرایه یکسان اشاره دارند.
به این کار کپی سطحی گفته می شود.
با این حال ، بیشتر اوقات ، به جای کپی سطحی ، به کپی عمیق نیاز داریم. یک کپی عمیق مقادیر ایجاد شی آرایه جدید را کپی می کند.