redimensionner un tableau d'octets dans android
Je suis novice sur android. Je veux redimensionner un tableau d'octets en fonction. Est-il possible ou pas. Si un problème s'il vous plaît suggérer une solution pour le faire.
public void myfunction(){
byte[] bytes = new byte[1024];
....................
.... do some operations........
................................
byte[] bytes = new byte[2024];
}
OriginalL'auteur Riskhan | 2012-05-15
Vous devez vous connecter pour publier un commentaire.
Vous pouvez le faire comme ceci:
Mais votre ancien contenu sera supprimé.Si vous avez besoin de le vieux de données, le besoin de créer un nouveau tableau d'octets avec une diff de taille et d'appel
System.arrayCopy()
méthode pour copier les données de l'ancien vers le nouveau.OriginalL'auteur UVM
Pour obtenir l'effet de redimensionnement d'un tableau d'octets sans perdre le contenu, il existe plusieurs solutions en Java déjà mentionné:
1)
ArrayList<Byte>
(voir les réponses d'un.ch. et kgiannakakis)2)
System.arraycopy()
(voir les réponses de jimpic, kgiannakakis, et UVM)Quelque chose comme:
3) je voudrais ajouter une troisième voie qui, je pense, est plus élégant:
Arrays.copyOfRange()
Bien sûr, il existe d'autres solutions (par exemple copier les octets dans une boucle). Concernant l'efficacité, voir ce
OriginalL'auteur Hartmut Pfitzinger
Vous ne pouvez pas redimensionner un tableau en Java. Vous pouvez utiliser un Liste à faire ce que vous voulez:
Une autre façon est d'utiliser Système.arraycopy. Dans ce cas, vous devrez créer un second tableau et copier le contenu du premier tableau.
OriginalL'auteur kgiannakakis
Vous ne pouvez pas le faire. Mais vous pouvez créer un nouveau tableau et l'utilisation du Système.arraycopy de copier l'ancien contenu de la nouvelle.
OriginalL'auteur jimpic
Utilisation
ArrayList<Byte>
au lieu de cela, Java les tableaux ne permettent pas de redimensionnement, ArrayLists faire, mais il est un peu différent. Vous ne pouvez pas spécifier de leur taille (en fait, vous n'avez pas besoin - c'est fait automatiquement), vous pouvez spécifier la capacité initiale (ce qui est bien pratique si vous savez comment beaucoup d'éléments de laArrayList
contiennent):Je vous recommande de regarder à travers cette Java Collections tutoriel.
OriginalL'auteur a.ch.