সুতরাং, সাধারণত ArrayList.toArray()
একটি প্রকার ফিরে আসবে Object[]
.... তবে এটি Arraylist
অবজেক্টের একটি ধারণা
Custom
, আমি কীভাবে toArray()
এর Custom[]
পরিবর্তে কোনও প্রকার ফেরত দেব Object[]
?
সুতরাং, সাধারণত ArrayList.toArray()
একটি প্রকার ফিরে আসবে Object[]
.... তবে এটি Arraylist
অবজেক্টের একটি ধারণা
Custom
, আমি কীভাবে toArray()
এর Custom[]
পরিবর্তে কোনও প্রকার ফেরত দেব Object[]
?
উত্তর:
এটার মত:
List<String> list = new ArrayList<String>();
String[] a = list.toArray(new String[0]);
জাভা Before এর আগে এটি লেখার জন্য সুপারিশ করা হয়েছিল:
String[] a = list.toArray(new String[list.size()]);
কারণ অভ্যন্তরীণ বাস্তবায়ন যে কোনও উপায়ে সঠিক আকারের অ্যারেটিকে পুনরায় প্রত্যাখ্যান করবে তাই আপনি আরও ভাল করে সামনে এগিয়ে যাচ্ছেন। যেহেতু জাভা 6 খালি অ্যারেটিকে অগ্রাধিকার দেওয়া হয়েছে, তাই .আরআরে (নতুন মাইক্লাস [0]) বা .to অরে (নতুন মাইক্লাস [মাইলিস্ট.সাইজ ()]) দেখুন?
যদি আপনার তালিকাটি যথাযথভাবে টাইপ করা না থাকে তবে অ্যারিতে কল করার আগে আপনাকে একটি কাস্ট করতে হবে। এটার মত:
List l = new ArrayList<String>();
String[] a = ((List<String>)l).toArray(new String[l.size()]);
এটির ফিরে আসার দরকার নেই Object[]
, উদাহরণস্বরূপ: -
List<Custom> list = new ArrayList<Custom>();
list.add(new Custom(1));
list.add(new Custom(2));
Custom[] customs = new Custom[list.size()];
list.toArray(customs);
for (Custom custom : customs) {
System.out.println(custom);
}
এখানে আমার Custom
ক্লাস:
public class Custom {
private int i;
public Custom(int i) {
this.i = i;
}
@Override
public String toString() {
return String.valueOf(i);
}
}
arrayList.toArray(new Custom[0]);
আমি উত্তর পেয়েছি ... এটি পুরোপুরি ঠিকঠাক কাজ করছে বলে মনে হচ্ছে
public int[] test ( int[]b )
{
ArrayList<Integer> l = new ArrayList<Integer>();
Object[] returnArrayObject = l.toArray();
int returnArray[] = new int[returnArrayObject.length];
for (int i = 0; i < returnArrayObject.length; i++){
returnArray[i] = (Integer) returnArrayObject[i];
}
return returnArray;
}
@SuppressWarnings("unchecked")
public static <E> E[] arrayListToArray(ArrayList<E> list)
{
int s;
if(list == null || (s = list.size())<1)
return null;
E[] temp;
E typeHelper = list.get(0);
try
{
Object o = Array.newInstance(typeHelper.getClass(), s);
temp = (E[]) o;
for (int i = 0; i < list.size(); i++)
Array.set(temp, i, list.get(i));
}
catch (Exception e)
{return null;}
return temp;
}
নমুনা:
String[] s = arrayListToArray(stringList);
Long[] l = arrayListToArray(longList);