La spécification de longueur est requise
int[] a; //Ne pas initialiser
int[] a = new int[5]; //Initialiser avec 0
int[][] a = new int[2][3]; //Tableau bidimensionnel
Lorsqu'il n'est pas initialisé, la valeur initiale est 0
int[] a = {1, 2, 3}; //Longueur 3
int[][] a = {{1,2},{3,4}}; //Initialisation bidimensionnelle
f(new int[]{1, 2, 3}); //Par comme argument de fonction@saka1029
--Attribut. Pas une fonction. --La longueur ne peut pas être modifiée.
a.length
a[0].length //Dans le cas de deux dimensions
--Subscript 0 Début --L'indice maximum est la longueur --1 --S'il dépasse, une exception "java.lang.ArrayIndexOutOfBoundsException" sera levée. --java.util.Arrays.fill (array, value) Remplit le tableau entier avec la valeur spécifiée --java.util.Arrays.fill (tableau, position de départ, position de fin, valeur) Remplit une partie du tableau avec la valeur spécifiée.
a[n];
a[i][j]; //Dans le cas de deux dimensions
--Array.clone ()
import java.util.Arrays;
class Rec{
String str;
public Rec(String s){str=s;}
public String toString(){return str;}
}
public class Main
{
public static void main(String[] args) {
int[] a = {1,2,3};
int[] b = a.clone();
a[1] = 7;
System.out.println("a=" + Arrays.toString(a) + " b=" + Arrays.toString(b));
String[] c = {"a", "b", "c"};
String[] d = c.clone();
c[1] = "7";
System.out.println("c=" + Arrays.toString(c) + " d=" + Arrays.toString(d));
Rec[] e = {new Rec("e"), new Rec("f"), new Rec("g")};
Rec[] f = e.clone();
Rec[] g = new Rec[3];
Rec[] h = Arrays.copyOf(e, 5);
Rec[] i = Arrays.copyOfRange(e, 2, 4);
System.arraycopy(e, 0, g, 0, g.length);
e[0] = new Rec("7");
e[1].str ="8";
g[2].str = "9";
System.out.println("e=" + Arrays.toString(e) + " f=" + Arrays.toString(f)
+ " g=" + Arrays.toString(g) + " h=" + Arrays.toString(h) + " i=" + Arrays.toString(i));
}
}
a=[1, 7, 3] b=[1, 2, 3] <== b[1]Reste 2
c=[a, 7, c] d=[a, b, c] <== d[1]Reste b
e=[7, 8, 9] f=[e, 8, 9] g=[e, 8, 9] h=[e, 8, 9, null, null] i=[9, null] <== f[0]Reste e, f[1], g[1]Changements, e[2],f[2],g[2]Changera
--Chaque méthode ne copie pas la copie superficielle, c'est-à-dire le contenu d'Object. --Clone (), copyOf (), copyOfRange () ne nécessitent pas le problème de la nouvelle destination de copie. --clone () crée le même tableau que l'original --copyOf () a une longueur de destination de copie variable. Quand il devient plus court, il se déconnecte, et quand il s'allonge, il est complété par 0, false, null, etc. --copyOfRange () a des positions de début et de fin de copie variables (même en dehors du tableau d'origine). 4/30 postscript: La position de départ ne peut pas être négative, c'est-à-dire qu'elle ne peut pas être ajoutée avant, ce qui est peu pratique. --arraycopy () prend du temps pour préparer la destination de la copie par vous-même, mais c'est totalement gratuit --Mon mémo: Bien que arraycopy () ait peu de restrictions, sa commodité est légèrement altérée. Allons-y plutôt que de nous souvenir de diverses choses.
--System.arraycopy () Référence
for(int i=0; i<a.length; i++){
// do sth. here
}
--java.util.Arrays.toString () // Développe le tableau --java.util.Arrays.deepToString () // Etend même les tableaux multidimensionnels
import java.util.Arrays;
int[] a = {1,2,3};
System.out.prontln("a=" + Arrays.toString(a));
int[][][] j = {{{1,2},{3,4},{5,6}},{ {7,8},{9,10},{11,12}}};
System.out.println("j=" + j + " aj=" + Arrays.toString(j) + " deepJ=" + Arrays.deepToString(j));
production
a=[1, 2, 3]
j=[[[I@2a139a55 aj=[[[I@15db9742, [[I@6d06d69c] deepJ=[[[1, 2], [3, 4], [5, 6]], [[7, 8], [9, 10], [11, 12]]]
sort
--java.util.Arrays.binarySearch () Recherche binaire, tri () requis à l'avance --Mon mémo: Considérez la carte triée
--convertir en java.util.Arrays.asList (array) List
Fonctionnalités non présentées ci-dessus
Recommended Posts