tableau java

Déclaration

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

Initialisation

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

longueur

--Attribut. Pas une fonction. --La longueur ne peut pas être modifiée.

a.length
a[0].length //Dans le cas de deux dimensions

Substitution

--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

Ajouter supprimer

copie

--Array.clone ()

Regardons un exemple de clone () et arraycopy ()
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));
	}
}
Résultat d'exécution
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
Différences entre différentes copies

--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.

Partiellement retiré

--System.arraycopy () Référence

boucle

for(int i=0; i<a.length; i++){
  // do sth. here
}

Stringification

--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

Chercher

--java.util.Arrays.binarySearch () Recherche binaire, tri () requis à l'avance --Mon mémo: Considérez la carte triée

Conversion de type

--convertir en java.util.Arrays.asList (array) List

Classe connexe

Fonctionnalités non présentées ci-dessus

référence

  1. https://www.sejuku.net/blog/14461

Recommended Posts

[Java] tableau
Tableau Java
java (tableau)
Tableau Java
[Java] Array
Tableau Java
tableau java
[Java] Array
variable de tableau java
[Java] Note sur le tableau
A propos de la liste des baies Java
Java
Tableau
[Java] Conversion de type de liste / type de tableau
Bases du développement Java ~ Exercice (tableau) ~
[Java] Convertir ArrayList en tableau
[Java Silver] Comment générer un tableau
Comment initialiser un tableau Java
[Débutant] Description du "tableau" de base Java
Apprendre Java (0)
Étudier Java ―― 3
Java protégé
[Java] Annotation
[Ruby] Tableau
Étudier Java ―― 9
Java scratch scratch
Pratique d'alignement
java (constructeur)
[Java] ArrayDeque
java (remplacement)
java (méthode)
Journée Java 2018
Chaîne Java
Mémo d'apprentissage Java (création d'un tableau)
Java statique
java débutant 4
Étudier Java ―― 4
Java (ensemble)
tri shell java
[Java] compareTo
Étudier Java -5
java réfléchissant 获 获 举
Mémorandum Java
Étudier Java ―― 1
[Java] Polymorphisme
Étudier Java # 0
Revue Java
framework java
[Java] Héritage
FastScanner Java
java débutant 3
java (encapsulation)
Héritage Java
[Java] Surcharge
Les bases de Java
Arrangement pratique 2
[Java] Calcul de tableau / tableau multidimensionnel en sortie (calcul de table AOJ⑥)
Décompiler Java