toArray()
می خواهی لیست را به آرایه (Array) تبدیل کنی؟ متد toArray() همین کار را انجام می دهد. اولی یک آرایه از نوع Object می دهد. دومی با آرایه ورودی، نوع بازگشتی را دقیق می کند. مثال ها ساده اند و شبیه چیدن کارت ها روی میز است.
toArray() چیست و چه می دهد؟
متد toArray() همه اعضای لیست را پشت سرهم در یک آرایه می ریزد. اگر آرگومان ندهی، نوع نتیجه Object[] است. اگر آرایه بدهی، تلاش می کند همان را پُر و همان را برگرداند.
نمونه ساده با خروجی Object[]
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<String> cars = new ArrayList<String>();
cars.add("Volvo");
cars.add("BMW");
cars.add("Ford");
cars.add("Mazda");
Object[] carsArray = cars.toArray();
for (Object item : carsArray) {
System.out.println(item);
}
}
}
- یک
ArrayListبساز. - چند مقدار اضافه کن.
toArray()را صدا بزن.- روی آرایه خروجی حلقه بزن.
نکته: چون خروجی Object[] است، برای دسترسی نوعی، باید تبدیل نوع انجام دهی.
تبدیل لیست به آرایه هم نوع (تبدیل لیست به آرایه)
برای گرفتن آرایه همان نوع، یک آرایه از همان نوع بده. اگر جا داشته باشد، همان آرایه پُر و برگردانده می شود.
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<String> cars = new ArrayList<String>();
cars.add("Volvo");
cars.add("BMW");
cars.add("Ford");
cars.add("Mazda");
String[] carsArray = new String[4];
carsArray = cars.toArray(carsArray);
for (String item : carsArray) {
System.out.println(item);
}
}
}
هشدار: اگر نوع آرایه با نوع اعضای لیست جور نباشد، ArrayStoreException می گیری.
سینتکس و جزییات فنی
سینتکس ها: Object[] toArray() و <T> T[] toArray(T[] array). بازگشت، آرایه شامل همه اعضاست. اگر array کوچک باشد، آرایه جدید ساخته می شود.
لینک های مرتبط
اندازه لیست با size() را ببین برای شمارش قبل از تبدیل.
کار با subList() را ببین برای گرفتن بخش دلخواه.
مرجع W3Schools: toArray() را برای توضیح کامل ببین.
مستندات اوراکل: Collection.toArray را برای رفتار دقیق بخوان.
جمع بندی سریع
toArray()بدون آرگومان،Object[]می دهد.- با آرایه ورودی، نوع خروجی همان است.
- جا داشت، همان آرایه را برمی گرداند.
- جا نداشت، آرایه جدید می سازد.
- عدم تطابق نوع، خطای
ArrayStoreExceptionمی دهد.