Maison  >  Article  >  Java  >  Comment définir et implémenter ArrayList et la liste de séquences en Java

Comment définir et implémenter ArrayList et la liste de séquences en Java

WBOY
WBOYavant
2023-05-18 14:04:46734parcourir

    1. Table linéaire

    Définition

    La table linéaire est la structure de données la plus basique, la plus simple et la plus couramment utilisée. Une séquence finie, qui contient n éléments de données présentant les mêmes caractéristiques, est appelée liste linéaire et constitue un type de structure de données.

    Listes linéaires courantes : listes séquentielles, listes chaînées, piles, files d'attente...

    Les listes linéaires sont des structures logiquement linéaires, c'est-à-dire qu'elles constituent une ligne droite continue. La forme de stockage physique des tableaux linéaires est généralement une structure de tableau ou de liste chaînée, mais elle n'est pas nécessairement continue.

    Caractéristiques

    • Il ne doit y avoir qu'un seul "premier élément" dans l'ensemble.

    • Il ne doit y avoir qu'un seul "dernier élément" dans l'ensemble.

    • À l'exception du dernier élément, tous les éléments ont un successeur unique (conséquent).

    • À l'exception du premier élément, tous les éléments ont un précurseur (antécédent) unique.

    2. Table de séquence

    Définition

    Une structure linéaire généralement stockée sous la forme d'un tableau est appelée table de séquence, qui stocke des éléments de données en séquence dans une unité de stockage avec des adresses physiques continues. Terminez l'ajout, la suppression, la vérification et la modification des données sur la baie.

    Implémentation

    Nous devons d'abord créer un tableau pour stocker les données.

    Comment définir et implémenter ArrayList et la liste de séquences en Java

    Remarque : Parce que j'ai d'abord créé le tableau d'entiers pour plus de commodité, afin de mieux s'adapter aux différents types, vous pouvez créer un tableau générique, que je n'écrirai pas ici.

    Comment définir et implémenter ArrayList et la liste de séquences en Java

    L'étape suivante consiste à effectuer diverses opérations sur la table de séquence. Par exemple : CURD de base, impression de la table de séquence, obtention de la longueur de la table de séquence, effacement de la table de séquence, etc.

    Imprimer le tableau

    Parce qu'il s'agit d'un tableau, il suffit donc de parcourir le tableau et de l'imprimer directement

    Comment définir et implémenter ArrayList et la liste de séquences en Java

    Ajouter de nouveaux éléments

    Lors de l'ajout d'éléments, il est nécessaire de déterminer si le tableau est plein, nous devons donc faites un jugement. Si l'espace du tableau est plein et doit être étendu. De plus, nous devons également déterminer si cette position de pos est légale.

    Comment juger si l'espace est plein

    Comment définir et implémenter ArrayList et la liste de séquences en Java

    Ici, nous simplifions le code comme suit :

    Comment définir et implémenter ArrayList et la liste de séquences en Java

    Si vous souhaitez augmenter la capacité, une fois l'expansion terminée, car la table de séquence est une structure continue, ajoutez des éléments à la position pos, puis les éléments après la position pos seront reculés un par un. Ce n'est qu'ainsi que de nouveaux éléments pourront être ajoutés.

    Comment définir et implémenter ArrayList et la liste de séquences en Java

    Remarque : Après l'expansion, nous devons modifier la taille de CAPACITY et usedSize.

    Déterminez s'il contient un certain élément

    Ici, nous devons déterminer si le tableau est vide à ce moment-là.

    Comment définir et implémenter ArrayList et la liste de séquences en Java

    Après cela, nous parcourons toujours directement le tableau.

    Comment définir et implémenter ArrayList et la liste de séquences en Java

    Recherche d'éléments

    nécessite également une opération nulle ici.

    Comment définir et implémenter ArrayList et la liste de séquences en Java

    Obtenez l'élément en position pos

    Il peut y avoir des situations où le tableau est vide et la position est illégale, un jugement est donc nécessaire.

    Je lance des exceptions manuellement ici, je n'ai rien écrit d'autre.

    Comment définir et implémenter ArrayList et la liste de séquences en Java

    Modifier la valeur de la position pos

    Comment définir et implémenter ArrayList et la liste de séquences en Java

    Opération de suppression

    Pour supprimer un élément à une certaine position, l'élément derrière lui peut directement l'écraser pour obtenir la suppression.

    Comment définir et implémenter ArrayList et la liste de séquences en Java

    Obtenir la longueur de la table de séquence

    Comment définir et implémenter ArrayList et la liste de séquences en Java

    Effacer la table de séquence

    Comment définir et implémenter ArrayList et la liste de séquences en Java

    Les opérations suivantes sont relativement simples et ne seront pas décrites en détail.

    3, ArrayList

    Introduction :

    Dans le framework de collection, ArrayList est une classe ordinaire qui implémente l'interface List Le schéma de framework spécifique est le suivant : # ° interface. Indique qu'ArrayList prend en charge l'accès aléatoire.

    Comment définir et implémenter ArrayList et la liste de séquences en Java

    ArrayList implémente l'interface Cloneable, indiquant qu'ArrayList peut être cloné.

    ArrayList implémente l'interface Serialisable, indiquant qu'ArrayList prend en charge la sérialisation.
    1. Contrairement à Vector, ArrayList n'est pas thread-safe et peut être utilisé dans des threads uniques. Dans plusieurs threads, vous pouvez choisir Vector ou CopyOnWriteArrayList.
    2. La couche inférieure d'ArrayList est un espace continu et peut être développée dynamiquement. Il s'agit d'une liste de séquences de type dynamique.
    3. Utiliser
    4.  public static void main(String[] args) {
              // ArrayList创建,推荐写法
              // 构造一个空的列表
              List<Integer> list1 = new ArrayList<>();
       
              // 构造一个具有10个容量的列表
              List<Integer> list2 = new ArrayList<>(10);
              list2.add(1);
              list2.add(2);
              list2.add(3);
       
              // list2.add("hello"); // 编译失败,List<Integer>已经限定了,list2中只能存储整形元素
              // list3构造好之后,与list中的元素一致
              ArrayList<Integer> list3 = new ArrayList<>(list2);
       
              // 避免省略类型,否则:任意类型的元素都可以存放,使用时将是一场灾难
              List list4 = new ArrayList();
              list4.add("111");
              list4.add(100);
          }
    5. Quelques méthodes courantes

    6. method

    7. Explication

    boolean add(E e)

    tail insert e# 🎜🎜#Supprimez l'élément de position d'index et retournez boolean remove(Object o)Supprimez le premier rencontré o E get(int index)Obtenir l'élément de position de l'index d'indice# 🎜 🎜#E set(int index, E element)void clear()# 🎜🎜 #Effacer la table de séquenceboolean contain(Object o)Jugez si o est dans la table linéaire#🎜🎜 #Renvoyer l'indice où se trouve le premier o #🎜🎜 #int lastIndexOf(Object o)Renvoyer l'indice du dernier o ListIntercepter une partie de la listeLoop traversal # 🎜🎜#iterator# 🎜 🎜#La différence entre une table de séquence et un tableau :
    void add(int index, E element) Insérer e dans la position de l'index
    boolean addAll(Collection< ;? étend E> c) Insérez la queue des éléments de l'ensemble c dans l'ensemble
    E delete(int index)# 🎜🎜#
    Définissez l'élément de position de l'index d'indice sur element
    int indexOf(Object o)
    ArrayList traversal
    foreach traversal
            System.out.println("======迭代器1=========");
     
            ElementObservableListDecorator<Object> list;
            Iterator<String> it =  list.iterator();
            while (it.hasNext()) {
                System.out.println(it.next());
            }
            System.out.println("======迭代器2=========");
            ListIterator<String> it2 =  list.listIterator();
            while (it2.hasNext()) {
                System.out.println(it2.next());
            }
    Il est dit ci-dessus que la couche inférieure d'une table de séquence peut être comprise comme un tableau, mais elle est plus avancée qu'un tableau.

    Le tableau de séquence peut être développé par lui-même

    Le tableau de séquence fait une distinction stricte entre la capacité du tableau et le nombre d'éléments.

    Comment définir et implémenter ArrayList et la liste de séquences en JavaDonc, un tableau est en fait une liste de séquences incomplète.

    Notes dans le tableau de séquence :

    Comment définir et implémenter ArrayList et la liste de séquences en Java

    Il faut distinguer deux concepts dans le tableau de séquence : Capacité (capacité) et nombre d'éléments (taille).

    La capacité peut être comprise comme la taille (longueur) du tableau, et le nombre d'éléments est le nombre d'éléments valides enregistrés en taille.

    Dans la table de séquence, le stockage des données doit être continu et il ne peut pas y avoir d'"espaces" entre les éléments lorsque des opérations telles que l'insertion et la suppression sont effectuées. l'opération Une fois terminée, la continuité de la table de séquence doit également être assurée.

    Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

    Déclaration:
    Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer