Les débutants en Java ont brièvement résumé le comportement de Array et ArrayList

introduction

Je n'ai pas bien compris le comportement de Java Array et ArrayList, j'ai donc essayé de résumer les parties susceptibles d'être utilisées fréquemment.

Exemple de code

Main1 décrit comment créer Array et Main2 décrit comment créer ArrayList et comment obtenir des valeurs. Main3 et Main4 décrivent chaque tableau multidimensionnel.

Main1

Main1.java


import java.util.Arrays;

/**
 * Created 2017/05/24.
 *Liste du comportement normal des tableaux dans Main1
 */
public class Main1 {
  public static void main(String[] args) {
    
    //Comment créer un tableau
    //Méthode de déclaration 1
    
    //Déclarez le type et le nom du tableau
    //int[] num;  
    
    //Sécurisez la zone à utiliser
    //num = new int[3];             

    //Méthode de déclaration 2
    //Comment faire la méthode ci-dessus en même temps
    int[] num = new int[3];               

    //Stockage dans une baie
    num[0] = 1;
    num[1] = 2;
    num[2] = 3;

    //Quand vous faites tout, de la création au stockage
    // int[] num = {1, 2, 3};

    //Extraction de séquence
    System.out.println(num[0]);
    //Résultat d'exécution: 1

    //Comment tout emporter en même temps

    //Lors d'une boucle avec une instruction for normale
    for (int i = 0; i < num.length; i++) {
      System.out.print(num[i] + " ");
      //Résultat d'exécution: 1 2 3
    }

    System.out.println(" ");                //Je l'ai mis pour l'apparence après l'exécution

    //Lors de l'utilisation de l'instruction Extended for
    for (int value : num) {               
      //value est un nom de variable arbitraire,Contrairement à l'ordinaire pour, le nom de la variable est utilisé tel quel
      System.out.print(value + " ");      
      //Résultat d'exécution: 1 2 3
    }
    System.out.println(" ");                //Comme ci-dessus

    //Comment afficher le contenu d'un tableau à la fois (méthode p en Ruby)
    // Arrays.Ça fait du bien d'utiliser toString
    //Par précaution lors de l'utilisation, importez java lors de l'utilisation.util.Arrays;Besoin de déclarer
    //L'autre est Arrays lorsque le tableau cible est un tableau multidimensionnel..Doit être écrit comme deepToString
    
    System.out.println(Arrays.toString(num));
    //Résultat de l'exécution:[1, 2, 3]

    //Si vous l'écrivez comme ça, cela devient une chaîne de caractères mystérieuse
    System.out.println(num);
    //Résultat d'exécution:[I@1540e19d


    //Règles supplémentaires et ainsi de suite
    //Array ne peut pas stocker plus que le nombre d'éléments déclarés au début
    //num[3] = 4;  //Cela n'a pas de sens d'écrire pour stocker 4 à la 4ème place du tableau, cela ne correspond pas réellement
    //System.out.println(num[3]);
    //En tant que comportement, il n'y a pas d'erreur de compilation, mais il y a une erreur d'exécution.
    //Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException:Mets-toi en colère comme 3
    //En outre, lorsque la déclaration de stockage dans le tableau n'est pas effectuée, par exemple, num[5]Et num[6]J'obtiens la même erreur en essayant d'afficher la valeur de
  }
}

Résultat d'exécution

Main1.Java


1
1 2 3  
1 2 3  
[1, 2, 3]
[I@1540e19d

Main2

Main2.java


import java.util.ArrayList;

/**
 * Created 2017/05/24.
 *Main2 décrit le comportement normal de ArraysList
 */
public class Main2 {
  public static void main(String[] args) {
    //Comment créer une ArrayList
    //Déclaration de base
    //ArrayList<Integer> num = new ArrayList<Integer>();

    //Exemple de définition de Java SE 7 ou version ultérieure
    ArrayList<Integer> num = new ArrayList<>();

    //Supplément
    //new ArrayList<>();de()は、数値を入れることで、配列de初期サイズを決めることが出来る
    
    //Méthode de stockage
    //Utilisez la méthode add
    //Ajouter comme manière d'écrire(Données que vous souhaitez stocker), ou ajouter(Index (position de stockage),Données que vous souhaitez stocker)Décrit dans
    //Il est essentiellement stocké dans l'ordre
    //Si la valeur existe déjà lorsque l'index est spécifié,Notez que la valeur est stockée de sorte qu'elle se décale horizontalement au lieu de l'écraser.
    num.add(1);
    num.add(1, 2);
    num.add(3);
    //num.add(2,4);
    //Si vous ajoutez comme ça,[1,2,4]ne pas[1,2,4,3]Veuillez noter que ce sera un tableau
    //Si vous souhaitez mettre à jour la valeur num.set(2,4);comme,.set()Avec[1.2,4]Peut être obtenu

    //Extraire la valeur
    
    //get()Utiliser la méthode
    System.out.println(num.get(0));
    //Résultat d'exécution: 1
    

    //Sortir à la main
    //pour déclaration
    //Pour ArrayList, pour obtenir le nombre d'éléments.size()utilisation
    for (int i = 0; i < num.size(); i++) { 
      System.out.print(num.get(i) + " ");
      //Résultat d'exécution:1 2 3
    }
    
    System.out.println(" ");

    //Étendu pour déclaration
    for (int value : num) {
      System.out.print(value + " ");
      //Résultat d'exécution:1 2 3
    }
    
    System.out.println(" ");

    //Lorsque vous affichez tout en même temps comme la méthode p, mettez-le simplement dans println tel quel
    System.out.println(num);
    //Résultat d'exécution:[1, 2, 3]
  }
}

Résultat d'exécution

Main2.java


1
1 2 3  
1 2 3  
[1, 2, 3]

Main3

Main3.java


import java.util.Arrays;

/**
 * Created 2017/05/24.
 *Dans Main3, une liste de comportements lors de la création d'un tableau multidimensionnel dans un tableau normal
 */
public class Main3 {
  public static void main(String[] args){
    //Déclaration et création
    int [][] num = new int[2][3];
    
    //Stockage de valeur
    num[0][0] = 1;
    num[0][1] = 2;
    num[0][2] = 3;
    num[1][0] = 10;
    num[1][1] = 11;
    num[1][2] = 12;
    
    //Comment récupérer la valeur
    System.out.println(num[0][0]);
    //Résultat d'exécution:1
    System.out.println(num[1][2]);
    //Résultat d'exécution:12
    
    //Lorsque vous sortez tout en même temps
    //Double boucle utilisant pour
    //i est le nombre total d'éléments en num, num.Boucle par longueur
    for(int i = 0; i < num.length; i++){
      //j est le nombre d'éléments dans chaque tableau, num[i].Boucle à longueur
      for(int j = 0; j < num[i].length;j++){
        System.out.print(num[i][j] + " ");
        //Résultat d'exécution: 1 2 3 10 11 12
      }
    }

    System.out.println(" ");
    
    //Pour prolongé pour
    //Ceci est également écrit dans une double boucle
    //Spécifiez un tableau comme données à récupérer
    for(int[] index : num) {
      //Ensuite, retirez le contenu de l'arrangement
      for (int element : index) {
        System.out.print(element + " ");
        //Résultat d'exécution: 1 2 3 10 11 12
      }
    }

    System.out.println(" ");
    
    //Affichage par lots
    //Tableaux pour tableaux multidimensionnels.deepToString();utilisation
    System.out.println(Arrays.deepToString(num));
    //Résultat d'exécution:[[1, 2, 3], [10, 11, 12]]
  }
}

Résultat d'exécution

Main3.java


1
12
1 2 3 10 11 12  
1 2 3 10 11 12  
[[1, 2, 3], [10, 11, 12]]

Main4

Main4.java


import java.util.ArrayList;

/**
 * Created 2017/05/24.
 *  *Main4 décrit le comportement multidimensionnel de ArraysList
 *Je peux le comprendre, mais c'est difficile à gérer
 */
public class Main4 {
  public static void main(String[] args){
    //Comment créer une ArrayList bidimensionnelle
    //Tout d'abord, créez deux ArrayLists ordinaires)
    ArrayList<Integer> num1 = new ArrayList(); 
    num1.add(1);
    num1.add(2);
    num1.add(3);
    
    System.out.println(num1);
    //Résultat d'exécution:[1, 2, 3]
    
    ArrayList<Integer> num2 = new ArrayList<Integer>();
    num2.add(10);
    num2.add(11);
    num2.add(12);

    System.out.println(num2);
    //Résultat d'exécution:[10, 11, 12]
    
    //Ensuite, créez une ArrayList à stocker, faites attention au type de données à déclarer
    //Lors de la déclaration du type de données, les données à stocker sont "ArrayList"<Integer>Boutique! Peut être saisi en déclarant
    ArrayList<ArrayList<Integer>> num_list =new ArrayList<>();
    num_list.add(num1);
    num_list.add(num2);
    
    //Comment sortir
    //.get().get()Sortez avec
    System.out.println(num_list.get(0).get(0));
    //Résultat d'exécution:1
    System.out.println(num_list.get(0).get(2));
    //Résultat d'exécution:3
    System.out.println(num_list.get(1).get(0));
    //Résultat d'exécution:10
    
    //Sortez tout
    //for
    //i est le nombre total d'éléments en num, num.size()Boucle avec
    for(int i = 0; i < num_list.size(); i++){
      //j est le nombre d'éléments dans chaque tableau, num[i].size(()Boucle vers
      for(int j = 0; j < num_list.get(i).size();j++){ 
        System.out.print(num_list.get(i).get(j) + " ");
        //Résultat d'exécution:1 2 3 10 11 12
      }
    }
    System.out.println(" ");
    
    //Extension pour
    //ArrayList dans la déclaration de variable<Integer>Si vous le déclarez avec + nom de variable, vous pouvez extraire la valeur!
    for(ArrayList<Integer> index : num_list) {
      //Le reste est décrit dans une instruction normale étendue pour
      for (int element : index) {
        System.out.print(element + " ");
        //Résultat d'exécution:1 2 3 10 11 12
      }
    }

    System.out.println(" ");
    
    //Affichage des lots
    System.out.println(num_list);
    //Résultat d'exécution:[[1, 2, 3], [10, 11, 12]]
    
    //Comment ajouter une valeur
    //.add()Vous pouvez utiliser, mais devez-vous ajouter chaque tableau ou créer un nouveau tableau et l'ajouter?
    //num_list.add()Je veux l'ajouter directement sous la forme de, mais je ne sais pas après tout
    
    num1.add(4);
    num2.add(13);
    
    //Ajouter un nouveau tableau
    ArrayList<Integer> num3 = new ArrayList<Integer>();
    num3.add(20);
    num3.add(21);
    num3.add(22);
    
    num_list.add(num3);
    
    System.out.println(num_list);
    //Résultat d'exécution[[1, 2, 3, 4], [10, 11, 12, 13], [20, 21, 22]]
  }
}

Résultat d'exécution

Main4.java


[1, 2, 3]
[10, 11, 12]
1
3
10
1 2 3 10 11 12  
1 2 3 10 11 12  
[[1, 2, 3], [10, 11, 12]]
[[1, 2, 3, 4], [10, 11, 12, 13], [20, 21, 22]]

Impressions

À l'origine, je faisais Ruby, donc les tableaux de longueur variable comme ArrayList étaient intuitivement plus faciles à utiliser. Lorsqu'il s'agit de tableaux multidimensionnels, l'impression est qu'ArrayList est déroutant et difficile à comprendre. Je ne sais toujours pas comment utiliser ces deux-là, alors j'aimerais bien étudier.

Recommended Posts

Les débutants en Java ont brièvement résumé le comportement de Array et ArrayList
J'ai résumé les types et les bases des exceptions Java
[Java] Différence entre array et ArrayList
Comparer les éléments d'un tableau (Java)
[jour: 5] J'ai résumé les bases de Java
[Java] [Spring] Tester le comportement de l'enregistreur
[Java] La partie déroutante de String et StringBuilder
J'ai comparé les caractéristiques de Java et .NET
ArrayList et le rôle de l'interface vu depuis List
Résumé du comportement de ToString avec les annotations Java et Groovy
Veuillez noter la division (division) de java kotlin Int et Int
[Pour les débutants] DI ~ Les bases de DI et DI au printemps ~
[Pour les débutants] Comprendre rapidement les bases de Java 8 lambda
Convertit le tableau d'erreurs.full_messages en caractères et sortie
Organiser l'état actuel de Java et envisager l'avenir
Langage Java du point de vue de Kotlin et C #
Vérifiez le comportement de Java Intrinsic Locks avec bpftrace
Le comportement est différent entre new et clear () de ArrayList
Liste des instructions Java fréquemment utilisées (pour les débutants et les débutants)
[Pour les débutants] Explication des classes, des instances et des statiques en Java
[Note] Sortie Java de la somme des éléments pairs et impairs
[Java] Compréhension débutante de Servlet-②
J'ai essayé de résumer les bases de kotlin et java
Un programme (Java) qui génère la somme des nombres pairs et impairs dans un tableau
[Java] Compréhension débutante de Servlet-①
J'ai essayé de comparer et de correspondre à des méthodes avec des fonctions similaires pour la différence entre le tableau Java et ArrayList.
Avantages et inconvénients de Java
[Java] Convertir ArrayList en tableau
[Java] J'ai réfléchi aux mérites et aux utilisations de "interface"
[Java] Divers résumés joints aux chefs de classe et aux membres
Utilisation des éléments de tableau Java, for, length, value et extended for statements
[Java] Obtenez les dates des derniers lundi et dimanche dans l'ordre
[Swift5] Comment obtenir un tableau et un ensemble de différences entre les tableaux
L'histoire de ne pas connaître le comportement de String en passant par Java
À propos de la relation entre l'opérateur d'égalité de chaîne Java (==) et l'initialisation. Débutants
Lire les 4 premiers octets du fichier de classe Java et générer CAFEBABE
De Java naissant (3 ans) à Node.js (4 ans). Et l'impression de retourner à Java
J'ai essayé de résumer les méthodes de Java String et StringBuilder
Depuis que j'ai réussi l'Oracle Java Bronze, j'ai résumé les grandes lignes du test.
Le comportement de JS fonctionnant sur `Java SE 8 Nashorn` a soudainement changé
À propos du comportement de ruby Hash # ==
[Java] Supprimer les éléments de la liste
[Pour les débutants] Résumé du constructeur java
À propos de Biocontainers fastqc et Java
Java pour les débutants, les expressions et les opérateurs 1
[Édition Java] Histoire de la sérialisation
J'ai lu la source de ArrayList que j'ai lu
Java pour les débutants, les expressions et les opérateurs 2
[Java] Déclarer et initialiser un tableau
Ceci et cela de JDK
Contenu d'apprentissage de base Java 2 (array / ArrayList)
Les débutants ont examiné le Webpack et l'ont résumé
À propos de removeAll et de retentionAll de ArrayList
Classes et instances Java pour les débutants
L'origine des expressions Java lambda
[Java] Convertit un tableau en ArrayList * Attention
[Rails] Différence de comportement entre delegate et has_many-through dans le cas de one-to-one-to-many
Augmenter dynamiquement le nombre d'éléments dans un tableau bidimensionnel Java (tableau multidimensionnel)
Une collection de phrases qui impressionne le "sentiment différent" de Java et de JavaScript