2
votes

quelle est la manière la plus optimale de convertir Arraylist en char []

Je me demande s'il y a de toute façon probablement par stream API pour convertir

List<Integer> li = Arrays.asList(1,2,3,45,678); 

en char [] ch sans passer à une étape intermédiaire de String ? Je n’en ai pas trouvé.


1 commentaires

quel est votre résultat attendu?


3 Réponses :


0
votes

Je pense que le moyen le plus simple est de déclarer un tableau de caractères et de sauvegarder le tableau de liste dans le tableau char par la fonction for loop et toArray ().


0 commentaires

4
votes

Peut-être un moyen d'itérer sur la liste et d'assigner les valeurs à l'index respectif dans le tableau comme:

Character[] ch = li.stream()
                   .map(i -> (char) i.intValue())
                   .toArray(Character[]::new);

ou si les primitives ne sont pas obligatoires, alors quelque chose comme:

IntStream.range(0, li.size())
         .forEach(i -> ch[i] = (char) li.get(i).intValue());


0 commentaires

0
votes

J'ai trouvé la solution, mais je devais avoir une transformation intermédiaire String .

List<Integer> li = Arrays.asList(1,2,3,45,678); 
        String Str =li.toString();
        char [] ch = new char[Str.length()];
        for(int i=0;i<Str.length();i++)
        {
         ch[i] =    Str.charAt(i);
        }
        for(char cc:ch)
        {        
            System.out.print(cc);
        }

Résultat: [1, 2, 3, 45, 678]


0 commentaires