767 votes

Comment convertir List<Integer> en int[] en Java ?

Cette question est similaire à la précédente : http://stackoverflow.com/questions/880581/java-convert-int-to-integer

Je suis nouveau en Java. Comment puis-je convertir une liste en int[] en Java ? Je suis confus car List.toArray() renvoie en fait un Object[], qui peut être converti en Integer[] ou int[].

Pour l'instant, j'utilise une boucle pour le faire :

int[] toIntArray(List<Integer> list){
  int[] ret = new int[list.size()];
  for(int i = 0;i < ret.length;i++)
    ret[i] = list.get(i);
  return ret;
}

Je suis sûr qu'il y a un meilleur moyen de faire ça.

0voto

NimChimpsky Points 20263

En utilisant un lambda, vous pourriez faire ceci (compile en lambda jdk) :

public static void main(String ars[]) {
        TransformService transformService = (inputs) -> {
            int[] ints = new int[inputs.size()];
            int i = 0;
            for (Integer element : inputs) {
                ints[i] = element;
            }
            return ints;
        };

        List<Integer> inputs = new ArrayList<Integer>(5) {{add(10); add(10);}};

        int[] results = transformService.transform(inputs);
    }

    public interface TransformService {
        int[] transform(List<Integer> inputs);
    }

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X