Η μετατροπή από ArrayList<Integer> σε int[] αν και δεν υποστηρίζεται από τις βασικές βιβλιοθήκες της Java
μπορεί να γίνει με διάφορους τρόπους.
Βλ.
http://stackoverflow.com/questions/7185 ... -int-arrayΠχ. με χρήση iterator (παραδείγματα 1 και 2) ή με χρήση της get() (παράδειγμα 3). Η χρήση της get μπορεί
να είναι αρκετά πιο αργή σε σχέση με τη χρήση iterator. Επιπλέον, έτοιμες μέθοδοι για τέτοιες μετατροπές παρέχονται
σε ορισμένες βιβλιοθήκες όπως πχ.
Apache Commons
https://commons.apache.org/proper/commo ... index.htmlή
Google Guava
https://code.google.com/p/guava-libraries/feeds
// Παράδειγμα 1
public static int[] convertIntegersWithIterator(List<Integer> integers)
{
int[] ret = new int[integers.size()];
Iterator<Integer> iterator = integers.iterator();
for (int i = 0; i < ret.length; i++)
{
ret[i] = iterator.next().intValue();
}
return ret;
}
// Παράδειγμα 2
public static int[] convertIntegersWithIterator2(List<Integer> integers) {
int[] ints = new int[integers.size()];
int i = 0;
for (Integer n : integers) {
ints[i++] = n;
}
return ints;
}
// Παράδειγμα 3
public static int[] convertIntegersWithFor(List<Integer> integers)
{
int[] ret = new int[integers.size()];
for (int i=0; i < ret.length; i++)
{
ret[i] = integers.get(i).intValue();
}
return ret;
}
public static void main(String[] args) {
List<Integer> list = new ArrayList<Integer>();
list.add(new Integer(1));
list.add(new Integer(2));
int[] values0 = convertIntegersWithIterator(list);
int[] values1 = convertIntegersWithIterator2(list);
int[] values2 = convertIntegersWithFor(list);
}