2009-07-14 6 views
1

J'ai un tableau d'objets bidimensionnel en Java. Certains index ne sont pas utilisés, car ils ont été ignorés lors du remplissage du tableau. tableau ressemble à:Reconstruire les index du tableau Java

Array[0][0] 
Array[0][1] 
Array[0][2] 
Array[1][0] 
Array[1][1] 
Array[1][2] 
Array[3][0] 
Array[3][1] 
Array[3][2] 

Le est manquante, comment puis-je reconstruire les indices pour rendre le tableau "correct"?

Répondre

2

Si vous avez un élément (ou un ensemble d'éléments) qui ne sont pas remplis, vous venez de fournir la valeur manquante (s) en utilisant:

Array[2] = new Object[3]; 

ou vous cherchez à compresser le tableau? Si ce dernier, il suffit de créer un nouveau tableau

Object[] NewArray = new Object[Array.length-1]; 

et itérer via Array, en ignorant la valeur null.

int j = 0; 
for (int i = 0; i < Array.length; i++) { 
    if (Array[i] != null) { 
     NewArray[j++]=Array[i]; 
    } 
} 

Malheureusement vous ne pouvez pas redimensionner un tableau une fois qu'il est créé (utiliser un ArrayList si vous voulez un comportement plus dynamique).

1

Hmm, avez-vous pensé:

array[2] = array[3]; 
array[3] = null; 
+0

Le problème est que vous avez toujours la valeur « manquante » - il est maintenant juste à la fin. –

+1

Ensuite, un nouveau tableau est nécessaire et en copiant les valeurs «remplies» dans le nouveau tableau. Vous l'avez déjà montré dans votre réponse. – Mnementh

Questions connexes