حذف یک عنصر از آرایه جاوا — به زبان ساده
در این راهنمای کوتاه با روشهای مختلف حذف یک عنصر از آرایه جاوا آشنا میشویم. به این منظور از کتابخانه Apache Commons Lang استفاده میکنیم.
Maven
در این مرحله وابستگی commons-lang3 را به فایل pom.xml پروژه اضافه میکنیم:
1<dependency>
2 <groupId>org.apache.commons</groupId>
3 <artifactId>commons-lang3</artifactId>
4 <version>3.9</version>
5</dependency>
حذف یک عنصر از آرایه جاوا
پیش از آغاز کار ابتدا بررسی میکنیم که وقتی یک عنصر از آرایهای بدون کلاس ArrayUtils از کتابخانه Apache Commons Lang حذف میشود، چه اتفاق رخ میدهد.
با فرض وجود آرایه زیر، عنصر در اندیس 2 را حذف میکنیم.
یک روش ساده برای انجام این کار میتواند جایگزینی مقدار ذخیره شده در اندیس 2 با مقدار ذخیره شده در اندیس 3 باشد تا این که به انتهای آرایه برسیم:
توجه کنید که با حذف عنصر به روش فوق، اندازه آرایه تغییری نمیکند و مقدار ذخیره شده در اندیس آخر خالی خواهد بود. از آنجا که آرایهها دارای تخصیص حافظه ثابتی در زمان مقداردهی اولیه هستند، حذف یک عنصر اصولاً تأثیری روی اندازه آرایه نمیگذارد.
اکنون به بررسی بازنمایی آرایه درزمان حذف عنصر با استفاده از متد remove از کلاس ArrayUtils از کتابخانه Apache Commons Lang میپردازیم:
چنان که مشاهده میکنید، اندازه آرایه پس از حذف عنصر به 5 کاهش یافته است. متد remove یک آرایه کاملاً جدید ایجاد میکند و همه مقادیر را به جز مقداری که باید حذف شود به آن کپی میکند.
کلاس ArrayUtils دو روش برای حذف یک عنصر از آرایه ارائه میکند. در ادامه به بررسی این دو روش میپردازیم.
استفاده از اندیس به عنوان ورودی
روش اول برای حذف عنصر از طریق اندیس آن با متد ArrayUtils#remove است:
1public int[] removeAnElementWithAGivenIndex(int[] array, int index) {
2 return ArrayUtils.remove(array, index);
3}
نسخه دیگر متد removeAll است که برای حذف چند عنصر از یک آرایه با استفاده از اندیس استفاده میشود:
1public int[] removeAllElementsWithGivenIndices(int[] array, int... indices) {
2 return ArrayUtils.removeAll(array, indices);
3}
استفاده از عنصر به عنوان ورودی
فرض کنید اندیس مقداری که میخواهیم حذف کنیم را نمیدانیم. در این حالت میتوانیم عنصری که باید حذف شود را با ارائه آن به ArrayUtils#removeElement حذف کنیم:
1public int[] removeFirstOccurrenceOfGivenElement(int[] array, int element) {
2 return ArrayUtils.removeElement(array, element);
3}
نسخه مفید دیگر آن متد ArrayUtils#removeElements است و در این حالت بیش از یک عنصر وجود دارند که میخواهیم حذف کنیم:
1public int[] removeAllGivenElements(int[] array, int... elements) {
2 return ArrayUtils.removeElements(array, elements);
3}
برخی اوقات میخواهیم همه رخدادهای یک عنصر موجود را از آرایه حذف کنیم. این کار با استفاده از متد ArrayUtils#removeAllOccurences ممکن است:
1public int[] removeAllOccurrencesOfAGivenElement(int[] array, int element) {
2 return ArrayUtils.removeAllOccurences(array, element);
3}
سخن پایانی
در این مقاله، به بررسی روشهای مختلف حذف یک عنصر/عناصر از یک آرایه با استفاده از کتابخانه Apache Commons Lang پرداختیم.
اگر این مطلب برای شما مفید بوده است، آموزشهای زیر نیز به شما پیشنهاد میشوند:
- مجموعه آموزشهای برنامهنویسی جاوا
- گنجینه آموزشهای جاوا (Java)
- مجموعه آموزشهای برنامهنویسی
- زبان برنامهنویسی جاوا (Java) — از صفر تا صد
- ۱۰ مفهوم اصلی زبان جاوا که هر فرد مبتدی باید بداند
==