web-dev-qa-db-fra.com

Java: int [] tableau vs int tableau []

Duplicate possible:
Différence entre les tableaux int [] et int array []

Y a-t-il une différence entre

int[] array = new int[10];

et

int array[] = new int[10];

?

Les deux fonctionnent, et le résultat est exactement le même. Lequel est le plus rapide ou le meilleur? Existe-t-il un guide de style qui en recommande un?

55
xuma202

Les deux sont équivalents. Jetez un oeil à ce qui suit:

int[] array;

// is equivalent to

int array[];
int var, array[];

// is equivalent to

int var;
int[] array;
int[] array1, array2[];

// is equivalent to

int[] array1;
int[][] array2;
public static int[] getArray()
{
    // ..
}

// is equivalent to

public static int getArray()[]
{
    // ..
}
100
Eng.Fouad

Les deux sont fondamentalement les mêmes, il n’ya aucune différence dans les performances, le plus recommandé est le premier, car il est plus lisible.

int[] array = new int[10];

FROM JLS :

Le [] peut apparaître en tant que partie du type au début de la déclaration, ou en tant que partie du déclarant pour une variable particulière, ou les deux.

8
PermGenError

Depuis JLS http://docs.Oracle.com/javase/specs/jls/se5.0/html/arrays.html#10.2

Voici des exemples de déclarations de variables de tableau qui ne créent pas de tableaux:

int[ ] ai;          // array of int
short[ ][ ] as;         // array of array of short
Object[ ]   ao,     // array of Object
        otherAo;    // array of Object
Collection<?>[ ] ca;        // array of Collection of unknown type
short       s,      // scalar short 
        aas[ ][ ];  // array of array of short

Voici quelques exemples de déclarations de variables de tableau créant des objets de tableau:

Exception ae[ ] = new Exception[3]; 
Object aao[ ][ ] = new Exception[2][3];
int[ ] factorial = { 1, 1, 2, 6, 24, 120, 720, 5040 };
char ac[ ] = { 'n', 'o', 't', ' ', 'a', ' ',
                 'S', 't', 'r', 'i', 'n', 'g' }; 
String[ ] aas = { "array", "of", "String", };

Le [] peut apparaître en tant que partie du type au début de la déclaration, ou en tant que partie du déclarant d'une variable particulière, ou les deux à la fois , en tant que dans cet exemple:

byte[ ] rowvector, colvector, matrix[ ];

Cette déclaration est équivalente à:

byte rowvector[ ], colvector[ ], matrix[ ][ ];
8
Shashi

Les deux sont les mêmes. J'utilise habituellement int[] array = new int[10];, en raison d'une meilleure lisibilité (contiguë) du type int[].

4
Sam

Il n'y a pas de différence entre ces deux déclarations et les deux ont la même performance.

2
sumit sharma

Non, il n'y a pas de différence. Mais je préfère utiliser int[] array car il est plus lisible.

2
Harinder

Il n'y a pratiquement aucune différence.

0
Ivaylo Strandjev

Dans les deux exemples, vous affectez un new int[10] à une variable de référence.

L'affectation d'une variable de référence dans l'un ou l'autre sens aura les mêmes performances.

int[] array = new int[10];

La notation ci-dessus est considérée comme la meilleure pratique pour la lisibilité.

À votre santé

0
Dennis Jaamann