Avant de publier une nouvelle réponse, considérez qu'il y a déjà plus de 25 réponses à cette question. Veuillez vous assurer que votre réponse fournit des informations qui ne figurent pas parmi les réponses existantes.
janniks
Réponses:
2684
Vous pouvez soit utiliser une déclaration de tableau ou un littéral de tableau (mais uniquement lorsque vous déclarez et affectez la variable immédiatement, les littéraux de tableau ne peuvent pas être utilisés pour réaffecter un tableau).
Pour les types primitifs:
int[] myIntArray =newint[3];int[] myIntArray ={1,2,3};int[] myIntArray =newint[]{1,2,3};// Since Java 8. Doc of IntStream: https://docs.oracle.com/javase/8/docs/api/java/util/stream/IntStream.htmlint[] myIntArray =IntStream.range(0,100).toArray();// From 0 to 99int[] myIntArray =IntStream.rangeClosed(0,100).toArray();// From 0 to 100int[] myIntArray =IntStream.of(12,25,36,85,28,96,47).toArray();// The order is preserved.int[] myIntArray =IntStream.of(12,25,36,85,28,96,47).sorted().toArray();// Sort
Pour les cours, par exemple String, c'est la même chose:
Quel est le but d'avoir à la fois la deuxième et la troisième façon de le faire?
Quazi Irfan
123
@iamcreasy Il semble que la deuxième façon ne fonctionne pas avec les instructions de retour. return {1,2,3}donne une erreur, tout return new int[]{1,2,3}fonctionne bien (en supposant bien sûr que votre fonction retourne un tableau entier).
Skylar Ittner
1
@SkylarMT Mais nous pouvons toujours utiliser la première façon d'utiliser l'instruction return.
Quazi Irfan
6
@iamcreasy J'ai récemment écrit une fonction qui renvoyait un tableau d'ints. Si une erreur s'est produite à l'intérieur de la fonction, je voulais qu'elle renvoie une certaine valeur, mais la fonction devait renvoyer un tableau. Quelle méthode fonctionne pour une déclaration de retour à une ligne? Seulement le troisième.
Skylar Ittner
5
@apadana Dans le second cas, vous créez un objet anonyme qui n'est défini que dans la portée englobante (fonction ou autre). Après l'avoir retourné à l'appelant, il n'est plus valide. En utilisant le nouveau mot clé, vous allouez le nouvel objet à partir du tas et il est valide en dehors de la portée de définition.
teukkam
280
Il existe deux types de tableau.
Tableau unidimensionnel
Syntaxe des valeurs par défaut:
int[] num =newint[5];
Ou (moins préféré)
int num[]=newint[5];
Syntaxe avec valeurs données (initialisation variable / champ):
int[] num ={1,2,3,4,5};
Ou (moins préféré)
int num[]={1,2,3,4,5};
Remarque: Par commodité, int [] num est préférable car il indique clairement que vous parlez ici de tableau. Sinon, aucune différence. Pas du tout.
for(int[] a : num){for(int i : a){System.out.println(i);}}
Les tableaux irréguliers sont des tableaux multidimensionnels.
Pour des explications, voir les détails du tableau multidimensionnel dans les tutoriels Java officiels
Le premier ne conduira-t-il pas à un tableau nul / vide, au lieu d'un tableau avec des valeurs par défaut?
vipin8169
Je suis d'accord sur ce point, et nous pouvons ajouter une fonctionnalité supplémentaire, nous pouvons changer la taille dynamiquement.
AdamIJK
Je pourrais discuter avec vous sur le point qu'un tableau multidimensionnel est un "type" de tableau différent. Il s'agit simplement d'un terme utilisé pour décrire un tableau qui se trouve contenir d'autres tableaux. Les tableaux externes et les tableaux internes (et ceux intermédiaires, s'ils existent) ne sont que des tableaux réguliers.
Je suis d'accord sur ce point. Le type de la variable n'est pas "TYPE", mais en fait un TYPE [], il est donc logique de l'écrire de cette façon pour moi.
Je trouve cela utile si vous comprenez chaque partie:
Type[] name =newType[5];
Type[]est le type de la variable appelée nom ("nom" est appelé l' identifiant ). Le "Type" littéral est le type de base, et les crochets signifient qu'il s'agit du type de tableau de cette base. Les types de tableaux sont à leur tour des types qui leur sont propres, ce qui vous permet de créer des tableaux multidimensionnels comme Type[][](le type de tableau Type []). Le mot-clé newdit d'allouer de la mémoire pour le nouveau tableau. Le nombre entre les crochets indique la taille du nouveau tableau et la quantité de mémoire à allouer. Par exemple, si Java sait que le type de base Typeprend 32 octets et que vous voulez un tableau de taille 5, il doit allouer en interne 32 * 5 = 160 octets.
Vous pouvez également créer des tableaux avec les valeurs déjà présentes, telles que
int[] name ={1,2,3,4,5};
qui non seulement crée l'espace vide mais le remplit avec ces valeurs. Java peut dire que les primitives sont des entiers et qu'il y en a 5, de sorte que la taille du tableau peut être déterminée implicitement.
Il n'est donc pas nécessaire d'inclure int[] name = new int[5]?
Cookie Monster
31
Ce qui suit montre la déclaration d'un tableau, mais le tableau n'est pas initialisé:
int[] myIntArray =newint[3];
Ce qui suit montre la déclaration ainsi que l'initialisation du tableau:
int[] myIntArray ={1,2,3};
Maintenant, ce qui suit montre également la déclaration ainsi que l'initialisation du tableau:
int[] myIntArray =newint[]{1,2,3};
Mais cette troisième montre la propriété de la création anonyme d'objets de tableau qui est pointée par une variable de référence "myIntArray", donc si nous écrivons juste "new int [] {1,2,3};" c'est ainsi que l'on peut créer un objet tableau anonyme.
Si nous écrivons simplement:
int[] myIntArray;
ce n'est pas une déclaration de tableau, mais l'instruction suivante complète la déclaration ci-dessus:
Il n'y a absolument aucune différence entre les deuxième et troisième approches, à part que la deuxième approche ne fonctionne que lorsque vous déclarez également une variable. Ce que vous entendez par «montre la propriété de la création anonyme d'objets de tableau» n'est pas clair, mais ce sont vraiment des morceaux de code équivalents.
Jon Skeet
4
En outre, le premier extrait n'initialiser le tableau - il est garanti d'avoir la valeur 0 pour chaque élément de tableau.
Jon Skeet
N'y a-t-il vraiment aucune différence entre la deuxième et la troisième approche?
truthadjustr
27
Alternativement,
// Either method worksString arrayName[]=newString[10];String[] arrayName =newString[10];
Cela déclare un tableau appelé arrayNamede taille 10 (vous avez des éléments de 0 à 9 à utiliser).
Quelle est la norme à utiliser? Je viens de découvrir le premier, et je le trouve horriblement trompeur: |
Anti Earth
2
Pour ce que ça vaut mon prof a dit que la deuxième façon est plus typique en Java et qu'elle transmet mieux ce qui se passe; en tant que tableau lié au type de la variable a été convertie en.
Celeritas
2
Pour une note latérale: Un langage ayant plus d'une sémantique pour déclarer une chose signifiant une mauvaise conception de langage.
Muhammad Suleman
26
De plus, si vous voulez quelque chose de plus dynamique, il y a l'interface List. Cela ne fonctionnera pas aussi bien, mais est plus flexible:
List<String> listOfString =newArrayList<String>();
listOfString.add("foo");
listOfString.add("bar");String value = listOfString.get(0);
assertEquals( value,"foo");
comment s'appelle le "<>" dans la liste que vous avez créée?
CyprUS
@CyprUS Listest une classe générique, elle a un type comme paramètre, inclus dans <>. Cela aide car vous n'avez besoin de définir un type générique qu'une seule fois et vous pouvez ensuite l'utiliser avec plusieurs types différents. Pour une explication plus détaillée, consultez docs.oracle.com/javase/tutorial/java/generics/types.html
Heimdall
15
Il existe deux façons principales de créer un tableau:
Celui-ci, pour un tableau vide:
int[] array =newint[n];// "n" being the number of spaces to allocate in the array
Et celui-ci, pour un tableau initialisé:
int[] array ={1,2,3,4...};
Vous pouvez également créer des tableaux multidimensionnels, comme ceci:
int[][] array2d =newint[x][y];// "x" and "y" specify the dimensionsint[][] array2d ={{1,2,3...},{4,5,6...}...};
Prenons l' intexemple du type primitif . Il existe plusieurs façons de déclarer et de intgrouper:
int[] i =newint[capacity];int[] i =newint[]{value1, value2, value3, etc};int[] i ={value1, value2, value3, etc};
où dans tout cela, vous pouvez utiliser à la int i[]place de int[] i.
Avec la réflexion, vous pouvez utiliser (Type[]) Array.newInstance(Type.class, capacity);
Notez que dans les paramètres de méthode, ...indique variable arguments. Essentiellement, n'importe quel nombre de paramètres est correct. C'est plus facile à expliquer avec du code:
À l'intérieur de la méthode, varargsest traitée comme une normale int[]. Type...ne peut être utilisé que dans les paramètres de la méthode, donc int... i = new int[] {}ne sera pas compilé.
Notez que lorsque vous passez un int[]à une méthode (ou toute autre Type[]), vous ne pouvez pas utiliser la troisième méthode. Dans l'instruction int[] i = *{a, b, c, d, etc}*, le compilateur suppose que le {...}signifie un int[]. Mais c'est parce que vous déclarez une variable. Lors du passage d'un tableau à une méthode, la déclaration doit être new Type[capacity]ou new Type[] {...}.
Tableaux multidimensionnels
Les tableaux multidimensionnels sont beaucoup plus difficiles à gérer. Essentiellement, un tableau 2D est un tableau de tableaux. int[][]signifie un tableau de int[]s. La clé est que si un int[][]est déclaré comme int[x][y], l'index maximum est i[x-1][y-1]. Un rectangle int[3][5]est essentiellement :
int[] a =IntStream.iterate(10, x -> x <=100, x -> x +10).toArray();Out:[10,20,30,40,50,60,70,80,90,100]int[] b =IntStream.iterate(0, x -> x +1).takeWhile(x -> x <10).toArray();Out:[0,1,2,3,4,5,6,7,8,9]
Pourquoi voudriez-vous créer un tableau de cette façon?
Dorian Gray
9
Déclaration d'un tableau de références d'objets:
classAnimal{}classHorseextendsAnimal{publicstaticvoid main(String[] args){/*
* Array of Animal can hold Animal and Horse (all subtypes of Animal allowed)
*/Animal[] a1 =newAnimal[10];
a1[0]=newAnimal();
a1[1]=newHorse();/*
* Array of Animal can hold Animal and Horse and all subtype of Horse
*/Animal[] a2 =newHorse[10];
a2[0]=newAnimal();
a2[1]=newHorse();/*
* Array of Horse can hold only Horse and its subtype (if any) and not
allowed supertype of Horse nor other subtype of Animal.
*/Horse[] h1 =newHorse[10];
h1[0]=newAnimal();// Not allowed
h1[1]=newHorse();/*
* This can not be declared.
*/Horse[] h2 =newAnimal[10];// Not allowed}}
Dans le cas d'objets, vous devez soit l'assigner à nullpour les initialiser en utilisant new Type(..), des classes comme Stringet Integersont des cas spéciaux qui seront traités comme suit
String[] a ={"hello","world"};// is equivalent toString[] a ={newString({'h','e','l','l','o'}),newString({'w','o','r','l','d'})};Integer[] b ={1234,5678};// is equivalent toInteger[] b ={newInteger(1234),newInteger(5678)};
En général, vous pouvez créer des tableaux Mdimensionnels
int[][]..[] array =// ^ M times [] brackets{{..{// ^ M times { bracket// this is array[0][0]..[0]// ^ M times [0]}}..}// ^ M times } bracket;
Il est à noter que la création d'un Mtableau dimensionnel coûte cher en termes d'espace. Depuis que vous créez un Mtableau dimensionnel avec Ntoutes les dimensions, la taille totale du tableau est plus grande que N^M, puisque chaque tableau a une référence, et à la dimension M il y a un tableau de références (M-1) -dimensionnel. La taille totale est la suivante
Space= N^M + N^(M-1)+ N^(M-2)+..+ N^0// ^ ^ array reference// ^ actual data
-50 et / ou +50 sont-ils réellement inclus? C'est-à-dire, est-ce que l'ouverture interne est à l'une ou aux deux extrémités?
Peter Mortensen
1
-50 est inclus et +50 est exclu. Ces informations de java api "origine donnée (inclus) et lié (exclusif)." J'utilise la déclaration d'intervalle du wiki . Je pense donc que ce sera plus correct [-50, 50)
Kirill Podlivaev
3
Une autre façon de déclarer et d'initialiser ArrayList:
privateList<String> list =newArrayList<String>(){{
add("e1");
add("e2");}};
Il y a beaucoup de réponses ici. J'ajoute quelques façons délicates de créer des tableaux (du point de vue de l' examen , il est bon de le savoir)
Déclarez et définissez un tableau
int intArray[]=newint[3];
Cela créera un tableau de longueur 3. Comme il contient un type primitif, int, toutes les valeurs sont définies sur 0 par défaut. Par exemple,
intArray[2];// Will return 0
Utilisation de crochets [] avant le nom de la variable
int[] intArray =newint[3];
intArray[0]=1;// Array content is now {1, 0, 0}
Initialiser et fournir des données à la baie
int[] intArray =newint[]{1,2,3};
Cette fois, il n'est pas nécessaire de mentionner la taille dans le support de boîte. Même une variante simple de ceci est:
int[] intArray ={1,2,3,4};
Un tableau de longueur 0
int[] intArray =newint[0];int length = intArray.length;// Will return length 0
Similaire pour les tableaux multidimensionnels
int intArray[][]=newint[2][3];// This will create an array of length 2 and//each element contains another array of length 3.// { {0,0,0},{0,0,0} }int lenght1 = intArray.length;// Will return 2int length2 = intArray[0].length;// Will return 3
Utilisation de crochets avant la variable:
int[][] intArray =newint[2][3];
C'est très bien si vous mettez un support de boîte à la fin:
int[] intArray []=newint[][]{{1,2,3},{4,5,6}};int[] intArray1 []=newint[][]{newint[]{1,2,3},newint[]{4,5,6}};int[] intArray2 []=newint[][]{newint[]{1,2,3},{4,5,6}}// All the 3 arrays assignments are valid// Array looks like {{1,2,3},{4,5,6}}
Il n'est pas obligatoire que chaque élément intérieur soit de la même taille.
int[][] intArray =newint[2][];
intArray[0]={1,2,3};
intArray[1]={4,5};//array looks like {{1,2,3},{4,5}}int[][] intArray =newint[][2];// This won't compile. Keep this in mind.
Vous devez vous assurer que si vous utilisez la syntaxe ci-dessus, que la direction avant vous devez spécifier les valeurs entre crochets. Sinon, il ne se compilera pas. Quelques exemples:
Une autre caractéristique importante est la covariante
Number[] numArray ={1,2,3,4};// java.lang.Number
numArray[0]=newFloat(1.5f);// java.lang.Float
numArray[1]=newInteger(1);// java.lang.Integer// You can store a subclass object in an array that is declared// to be of the type of its superclass.// Here 'Number' is the superclass for both Float and Integer.Number num[]=newFloat[5];// This is also valid
IMPORTANT: pour les types référencés, la valeur par défaut stockée dans le tableau est null.
Tableau statique: tableau de taille fixe (sa taille doit être déclarée au début et ne peut pas être modifiée ultérieurement)
Tableau dynamique: aucune limite de taille n'est prise en compte pour cela. (Les tableaux dynamiques purs n'existent pas en Java. Au lieu de cela, la liste est la plus encouragée)
Pour déclarer un tableau statique de type Integer, string, float, etc ... utilisez la déclaration ci-dessous et les instructions d'initialisation.
int[] intArray =newint[10];String[] intArray =newint[10];float[] intArray =newint[10];// here you have 10 index starting from 0 to 9
Pour utiliser des fonctionnalités dynamiques, vous devez utiliser List ... List est un tableau dynamique pur et il n'est pas nécessaire de déclarer la taille au début. Ci-dessous est la bonne façon de déclarer une liste dans JAVA>
Il est très facile de déclarer et d'initialiser un tableau. Par exemple, vous souhaitez enregistrer cinq éléments entiers qui sont 1, 2, 3, 4 et 5 dans un tableau. Vous pouvez le faire de la manière suivante:
une)
int[] a =newint[5];
ou
b)
int[] a ={1,2,3,4,5};
donc le modèle de base est pour l'initialisation et la déclaration par la méthode a) est:
Le tableau peut contenir des types de données primitifs ainsi que des objets d'une classe selon la définition du tableau. Dans le cas des types de données primitifs, les valeurs réelles sont stockées dans des emplacements de mémoire contigus. Dans le cas d'objets d'une classe, les objets réels sont stockés dans un segment de tas.
Tableaux unidimensionnels:
La forme générale d'une déclaration de tableau unidimensionnel est
type var-name[];
OR
type[] var-name;
Instanciation d'un tableau en Java
var-name =new type [size];
Par exemple
int intArray[];//declaring array
intArray =newint[20];// allocating memory to array// the below line is equals to line1 + line2int[] intArray =newint[20];// combining both statements in oneint[] intArray =newint[]{1,2,3,4,5,6,7,8,9,10};// accessing the elements of the specified arrayfor(int i =0; i < intArray.length; i++)System.out.println("Element at index "+ i +" : "+ intArray[i]);
Bien que ce code puisse répondre à la question, il serait préférable d'expliquer comment il résout le problème sans en introduire d'autres et pourquoi l'utiliser. Les réponses uniquement codées ne sont pas utiles à long terme.
Réponses:
Vous pouvez soit utiliser une déclaration de tableau ou un littéral de tableau (mais uniquement lorsque vous déclarez et affectez la variable immédiatement, les littéraux de tableau ne peuvent pas être utilisés pour réaffecter un tableau).
Pour les types primitifs:
Pour les cours, par exemple
String
, c'est la même chose:La troisième méthode d'initialisation est utile lorsque vous déclarez d'abord le tableau, puis l'initialisez. Le casting est nécessaire ici.
la source
return {1,2,3}
donne une erreur, toutreturn new int[]{1,2,3}
fonctionne bien (en supposant bien sûr que votre fonction retourne un tableau entier).Il existe deux types de tableau.
Tableau unidimensionnel
Syntaxe des valeurs par défaut:
Ou (moins préféré)
Syntaxe avec valeurs données (initialisation variable / champ):
Ou (moins préféré)
Remarque: Par commodité, int [] num est préférable car il indique clairement que vous parlez ici de tableau. Sinon, aucune différence. Pas du tout.
Tableau multidimensionnel
Déclaration
Ou
Ou
Initialisation
Ou
Tableau irrégulier (ou tableau non rectangulaire)
Nous définissons donc ici explicitement les colonnes.
Autrement:
Pour accéder:
Alternativement:
Les tableaux irréguliers sont des tableaux multidimensionnels.
Pour des explications, voir les détails du tableau multidimensionnel dans les tutoriels Java officiels
la source
est également valide, mais je préfère les crochets après le type, car il est plus facile de voir que le type de la variable est en fait un tableau.
la source
int[] a, b;
ce ne sera pas la même chose qu'uneint a[], b;
erreur facile à faire si vous utilisez ce dernier formulaire.Il existe différentes façons de déclarer un tableau en Java:
Vous pouvez trouver plus d'informations sur le site du didacticiel Sun et JavaDoc .
la source
Je trouve cela utile si vous comprenez chaque partie:
Type[]
est le type de la variable appelée nom ("nom" est appelé l' identifiant ). Le "Type" littéral est le type de base, et les crochets signifient qu'il s'agit du type de tableau de cette base. Les types de tableaux sont à leur tour des types qui leur sont propres, ce qui vous permet de créer des tableaux multidimensionnels commeType[][]
(le type de tableau Type []). Le mot-clénew
dit d'allouer de la mémoire pour le nouveau tableau. Le nombre entre les crochets indique la taille du nouveau tableau et la quantité de mémoire à allouer. Par exemple, si Java sait que le type de baseType
prend 32 octets et que vous voulez un tableau de taille 5, il doit allouer en interne 32 * 5 = 160 octets.Vous pouvez également créer des tableaux avec les valeurs déjà présentes, telles que
qui non seulement crée l'espace vide mais le remplit avec ces valeurs. Java peut dire que les primitives sont des entiers et qu'il y en a 5, de sorte que la taille du tableau peut être déterminée implicitement.
la source
int[] name = new int[5]
?Ce qui suit montre la déclaration d'un tableau, mais le tableau n'est pas initialisé:
Ce qui suit montre la déclaration ainsi que l'initialisation du tableau:
Maintenant, ce qui suit montre également la déclaration ainsi que l'initialisation du tableau:
Mais cette troisième montre la propriété de la création anonyme d'objets de tableau qui est pointée par une variable de référence "myIntArray", donc si nous écrivons juste "new int [] {1,2,3};" c'est ainsi que l'on peut créer un objet tableau anonyme.
Si nous écrivons simplement:
ce n'est pas une déclaration de tableau, mais l'instruction suivante complète la déclaration ci-dessus:
la source
Alternativement,
Cela déclare un tableau appelé
arrayName
de taille 10 (vous avez des éléments de 0 à 9 à utiliser).la source
De plus, si vous voulez quelque chose de plus dynamique, il y a l'interface List. Cela ne fonctionnera pas aussi bien, mais est plus flexible:
la source
List
est une classe générique, elle a un type comme paramètre, inclus dans<>
. Cela aide car vous n'avez besoin de définir un type générique qu'une seule fois et vous pouvez ensuite l'utiliser avec plusieurs types différents. Pour une explication plus détaillée, consultez docs.oracle.com/javase/tutorial/java/generics/types.htmlIl existe deux façons principales de créer un tableau:
Celui-ci, pour un tableau vide:
Et celui-ci, pour un tableau initialisé:
Vous pouvez également créer des tableaux multidimensionnels, comme ceci:
la source
Prenons l'
int
exemple du type primitif . Il existe plusieurs façons de déclarer et deint
grouper:où dans tout cela, vous pouvez utiliser à la
int i[]
place deint[] i
.Avec la réflexion, vous pouvez utiliser
(Type[]) Array.newInstance(Type.class, capacity);
Notez que dans les paramètres de méthode,
...
indiquevariable arguments
. Essentiellement, n'importe quel nombre de paramètres est correct. C'est plus facile à expliquer avec du code:À l'intérieur de la méthode,
varargs
est traitée comme une normaleint[]
.Type...
ne peut être utilisé que dans les paramètres de la méthode, doncint... i = new int[] {}
ne sera pas compilé.Notez que lorsque vous passez un
int[]
à une méthode (ou toute autreType[]
), vous ne pouvez pas utiliser la troisième méthode. Dans l'instructionint[] i = *{a, b, c, d, etc}*
, le compilateur suppose que le{...}
signifie unint[]
. Mais c'est parce que vous déclarez une variable. Lors du passage d'un tableau à une méthode, la déclaration doit êtrenew Type[capacity]
ounew Type[] {...}
.Tableaux multidimensionnels
Les tableaux multidimensionnels sont beaucoup plus difficiles à gérer. Essentiellement, un tableau 2D est un tableau de tableaux.
int[][]
signifie un tableau deint[]
s. La clé est que si unint[][]
est déclaré commeint[x][y]
, l'index maximum esti[x-1][y-1]
. Un rectangleint[3][5]
est essentiellement :la source
Dans Java 9
En utilisant différentes méthodes
IntStream.iterate
etIntStream.takeWhile
:Dans Java 10
Utilisation de l' inférence de type variable locale :
la source
Si vous souhaitez créer des tableaux en utilisant des réflexions, vous pouvez faire comme ceci:
la source
Déclaration d'un tableau de références d'objets:
la source
Le tableau est une liste séquentielle d'éléments
Si c'est un objet, c'est le même concept
Dans le cas d'objets, vous devez soit l'assigner à
null
pour les initialiser en utilisantnew Type(..)
, des classes commeString
etInteger
sont des cas spéciaux qui seront traités comme suitEn général, vous pouvez créer des tableaux
M
dimensionnelsIl est à noter que la création d'un
M
tableau dimensionnel coûte cher en termes d'espace. Depuis que vous créez unM
tableau dimensionnel avecN
toutes les dimensions, la taille totale du tableau est plus grande queN^M
, puisque chaque tableau a une référence, et à la dimension M il y a un tableau de références (M-1) -dimensionnel. La taille totale est la suivantela source
En Java 8, vous pouvez utiliser comme ça.
la source
Pour créer des tableaux d'objets de classe, vous pouvez utiliser le
java.util.ArrayList
. pour définir un tableau:Attribuez des valeurs au tableau:
Lire à partir du tableau:
Remarque:
variableName
est une référence au tableau, ce qui signifie que la manipulationvariableName
manipuleraarrayName
pour les boucles:
pour boucle qui vous permet d'éditer
arrayName
(conventionnel pour boucle):la source
Déclarez et initialisez pour Java 8 et versions ultérieures. Créez un tableau d'entiers simple:
Créez un tableau aléatoire pour les entiers entre [-50, 50] et pour les doubles [0, 1E17]:
Séquence de puissance de deux:
Pour String [], vous devez spécifier un constructeur:
Tableaux multidimensionnels:
la source
Une autre façon de déclarer et d'initialiser ArrayList:
la source
Il y a beaucoup de réponses ici. J'ajoute quelques façons délicates de créer des tableaux (du point de vue de l' examen , il est bon de le savoir)
Déclarez et définissez un tableau
Cela créera un tableau de longueur 3. Comme il contient un type primitif, int, toutes les valeurs sont définies sur 0 par défaut. Par exemple,
Utilisation de crochets [] avant le nom de la variable
Initialiser et fournir des données à la baie
Cette fois, il n'est pas nécessaire de mentionner la taille dans le support de boîte. Même une variante simple de ceci est:
Un tableau de longueur 0
Similaire pour les tableaux multidimensionnels
Utilisation de crochets avant la variable:
C'est très bien si vous mettez un support de boîte à la fin:
Quelques exemples
Il n'est pas obligatoire que chaque élément intérieur soit de la même taille.
Vous devez vous assurer que si vous utilisez la syntaxe ci-dessus, que la direction avant vous devez spécifier les valeurs entre crochets. Sinon, il ne se compilera pas. Quelques exemples:
Une autre caractéristique importante est la covariante
IMPORTANT: pour les types référencés, la valeur par défaut stockée dans le tableau est null.
la source
Vous pouvez également le faire avec
java.util.Arrays
:Celui-ci est assez simple et direct.
la source
Avec l'inférence de type de variable locale, vous ne devez spécifier le type qu'une seule fois:
Ou
la source
var
.var
openjdk.java.net/jeps/286Le tableau a deux types de base.
Pour déclarer un tableau statique de type Integer, string, float, etc ... utilisez la déclaration ci-dessous et les instructions d'initialisation.
Pour utiliser des fonctionnalités dynamiques, vous devez utiliser List ... List est un tableau dynamique pur et il n'est pas nécessaire de déclarer la taille au début. Ci-dessous est la bonne façon de déclarer une liste dans JAVA>
la source
Déclarez le tableau:
int[] arr;
Initialize Array:
int[] arr = new int[10];
10 représente le nombre d'éléments autorisés dans le tableauDéclarez un tableau multidimensionnel:
int[][] arr;
Initialiser un tableau multidimensionnel:
int[][] arr = new int[10][17];
10 lignes et 17 colonnes et 170 éléments car 10 fois 17 est 170.Initialiser un tableau signifie en spécifier la taille.
la source
Il est très facile de déclarer et d'initialiser un tableau. Par exemple, vous souhaitez enregistrer cinq éléments entiers qui sont 1, 2, 3, 4 et 5 dans un tableau. Vous pouvez le faire de la manière suivante:
une)
ou
b)
donc le modèle de base est pour l'initialisation et la déclaration par la méthode a) est:
datatype
devrait être en minuscules.Donc, le modèle de base est pour l'initialisation et la déclaration par la méthode a est:
S'il s'agit d'un tableau de chaînes:
S'il s'agit d'un tableau de caractères:
Pour float double, le format du tableau sera identique à entier.
Par exemple:
mais lorsque vous déclarez et initialisez le tableau par la "méthode a", vous devrez entrer les valeurs manuellement ou par boucle ou quelque chose.
Mais lorsque vous le faites par la "méthode b", vous n'aurez pas à entrer les valeurs manuellement.
la source
Le tableau peut contenir des types de données primitifs ainsi que des objets d'une classe selon la définition du tableau. Dans le cas des types de données primitifs, les valeurs réelles sont stockées dans des emplacements de mémoire contigus. Dans le cas d'objets d'une classe, les objets réels sont stockés dans un segment de tas.
Tableaux unidimensionnels:
La forme générale d'une déclaration de tableau unidimensionnel est
Instanciation d'un tableau en Java
Par exemple
Réf: https://www.geeksforgeeks.org/arrays-in-java/
la source
un autre exemple complet avec la classe de films 😋
la source
exemple:
ou
exemple:
la source
la source