10
votes

(ONU) Tableaux primitifs de boxe en Java

Dans l'Android Java World, existe-t-il un moyen de convertir Straighforward (idéalement un appel) de convertir un tableau de int vers un arrayliste et de retour? Calling Toarray () sur la flagliste retourne un tableau de entier - pas tout à fait ce que je veux.

Je peux facilement faire cela à la main avec une boucle (déjà fait, en fait). Je me demande si la bibliothèque / la langue prend en charge la même chose.

Edit: Merci tout, j'ai déjà écrit mon propre boxeur et monoxeur. Je suis juste surpris que les concepteurs de langue / RTL ne pensaient pas eux eux-mêmes, en particulier avec des types primitifs étant par design inéligibles pour les collections.


3 commentaires

Core Java ne le fait pas. Je suis sûr que quelqu'un peut fournir un lien vers une bibliothèque tierce qui peut le faire pour vous.


Dupliqué possible de Comment convertir int [] en liste en Java ?


Vous voudrez peut-être jeter un oeil à ce fil: Stackoverflow.com/Questtions/44297189/...


4 Réponses :


4
votes

Si vous créez une méthode utilitaire qui constituerait une conversion d'un appel unique. Peut-être dans votre cas que ce serait mieux que d'ajouter une bibliothèque entière (dont vous pourriez simplement utiliser une fonction) bien que cela devrait être trop fardeau pour votre application.

Voici le code source pour la réponse H3xtream (content qu'il utilise une licence Apache);)


0 commentaires

12
votes

en utilisant GUAVA ( INTS.ASLIST (INT ...) et INTS.TOTARARAY (COLLECTION ) ):

List<Integer> arrayList = Lists.newArrayList(Ints.asList(intArray));


1 commentaires

Je n'ai pas introduit une nouvelle dépendance dans le projet pour une fonction à trois lignes, je pouvais écrire dans mon sommeil.



1
votes

J'ai réussi à trouver une solution dans Java 8 : xxx

Je ne peux pas expliquer ce que double [] :: nouvelle signifie exactement, parce que je ne connaissais pas cette caractéristique de Java 8 avant (en fait, Intellij Idea a écrit cela pour moi), mais il semble que cela fait nouveau double (double) sur chaque élément du tableau.

Veuillez noter : j'ai testé ce seul sur le bureau, je ne sais pas si Cela fonctionne dans Android.


1 commentaires

Ce que vous faites, il n'y a réellement que boxe (convertir une primitive à sa classe d'enveloppe correspondante), pas nonboxing (convertir d'une classe d'emballage à sa primitive correspondante).



10
votes

boxe et décomposition (sans bibliothèques spéciales): xxx

Notez que cela nécessite java 8 ( Documentation de flux ).

pour quiconque ignorant de ce que le :: signifie, il est utilisé pour créer un Référence de méthode .


2 commentaires

Qu'en est-il de octet et octet ? Il semble qu'il n'y ait aucun maptobyte .


@Anakhand je n'ai plus fait Java Dev plus de Java Dev depuis quelques années, mais vous pourriez trouver cela utile: Stackoverflow.com/questions/32459683/...