Maison  >  Article  >  Java  >  Quelle est la structure des données du cadre de collecte Java

Quelle est la structure des données du cadre de collecte Java

WBOY
WBOYavant
2023-05-28 15:58:571641parcourir

    1. Qu'est-ce qu'un cadre de collecte ?

    En Java, il existe un ensemble de structures de données prêtes à l'emploi, telles que des listes de séquences, des listes chaînées, des files d'attente, des piles, des files d'attente prioritaires, des tables de hachage, etc., qui sont encapsulées dans les interfaces correspondantes/ les classes de programmes pour les membres peuvent l'utiliser directement. Il leur suffit de créer des objets pertinents à utiliser, sans avoir besoin d'implémenter leurs structures internes.

    Une collection est une structure de données qui stocke et gère plusieurs éléments, où ces éléments sont placés dans une seule unité et peuvent être traités via des opérations telles que l'ajout, la suppression, la modification et la requête. Par exemple, un jeu de cartes à jouer (une collection de cartes), un carnet d'adresses (un ensemble de relations cartographiques entre des noms et des numéros de téléphone), etc. peuvent être utilisés comme exemples.

    La photo ci-dessous est très importante ! ! ! Vous devez vous rappeler ses interfaces et classes couramment utilisées ! !

    Quelle est la structure des données du cadre de collecte Java

    Quelle est la structure des données du cadre de collecte Java

    Parce que l'interface de la carte n'implémente pas l'interface Iterable, comment l'implémenter pour parcourir le des éléments ?

    		Map<Integer,String> map = new HashMap();
            map.put(1,"jack");
            map.put(2,"tom");
            Set<Map.Entry<Integer, String>> entries = map.entrySet();
            // 使用迭代器进行遍历 ,增强 for同理
            Iterator<Map.Entry<Integer, String>> iterator = entries.iterator();
            while (iterator.hasNext()) {
                Map.Entry<Integer, String> entry =  iterator.next();
                System.out.println(entry.getKey() + " " + entry.getValue());
            }

    En prenant HashMap comme exemple, vous pouvez appeler sa méthode EntrySet() pour encapsuler chaque paire clé-valeur dans la carte dans un Map.Entry l'objet est reçu à l'aide de l'interface Set, il peut être parcouru à l'aide d'un itérateur ou for-each(), et chaque objet d'entrée a les méthodes getKey() et getValue() pour obtenir respectivement la valeur clé et la valeur valeur.

    Relation de base (version simple)

    Quelle est la structure des données du cadre de collecte Java

    2 L'interface de collection

    est généralement implémentée en utilisant L'interface ou la classe de l'interface Collection est utilisée pour accepter des objets de classes d'implémentation spécifiques. Comme le montre la figure ci-dessus, l'interface Collection est l'interface parent d'une série d'interfaces et de classes. Elle a relativement peu de méthodes implémentées en interne. donc certaines sous-classes ne peuvent pas être appelées des méthodes communes.

    1. Utilisez des génériques pour spécifier le type d'objet dans la collection correspondante

    Remarque : le type transmis ici ne peut être qu'un type de référence s'il s'agit d'un type de données de base. , il doit être utilisé dans sa classe d'emballage pour spécifier

    		Collection<String> collection1 = new ArrayList();
            collection1.add("haha");
            collection1.add("world");
            Collection<Integer> collection2 = new ArrayList();
            collection2.add(1);
            collection2.add(2);
            //collection2.add("hh");// 这里会报错,不符合传入的指定类型Integer

    2. Les méthodes courantes de collection utilisent la méthode

    boolean isEmpty() Déterminer si l'ensemble ne contient aucun élément, communément appelé ensemble vide# 🎜🎜#boolean Remove(Object e)boolean add(E e)#🎜🎜 #Mettre l'élément e dans l'ensembleint size()Renvoyer le numéro des éléments de l'ensembleRenvoie un tableau contenant tous les éléments de la collection #🎜 🎜## 🎜🎜#Remarque : Dans la dernière méthode Object[] toArray(), un tableau de type Object[] est renvoyé. La méthode sous-jacente est la suivante : supprimer les éléments de la collection. par un, convertissez-les en objets Object et enregistrez-les dans le tableau à renvoyer, et renvoie enfin un tableau de type Object[]. Une exception de conversion de type est levée lors de la conversion en tableau String[].
    méthode fonction
    void clear() Supprimer tous les éléments de l'ensemble#🎜🎜 #
    Si l'élément e apparaît dans l'ensemble, supprimez-en un
    #🎜🎜 # Object[] toArray()
    Parce qu'il n'y a aucune garantie que chaque élément du tableau soit converti en String, mais il est simplement forcé d'être converti en un tableau de type String [] , donc si vous devez effectuer une conversion, vous devez d'abord parcourir les résultats renvoyés, les convertir en type String un par un et enfin les affecter à un tableau de type String[] . Il n'est pas recommandé de convertir le type de tableau dans son ensemble en Java.

    		Object[] objects = collection1.toArray();
            String[] strings = new String[objects.length];
            for (int i = 0; i < objects.length; i++) {
                strings[i] = (String)objects[i];// 一个一个转,但是没啥必要
            }

    3. L'interface cartographique

    Quelle est la structure des données du cadre de collecte Java stocke les données sous la forme de paires clé-valeur

    Utilisation des méthodes courantes de la carte

    method

    functionTrouver le v correspondant selon le k spécifié#🎜🎜 ##🎜 🎜#V getOrDefault(Object k, V defaultValue) V put (touche K, valeur V)Mettre le k-v spécifié dans la carteboolean containKey(Object key )Jugez s'il contient une cléboolean containValue(Object value)Juge s'il contient une valeur# 🎜🎜#Renvoyer toutes les paires clé-valeur #🎜 🎜#Valeur de la clé de retour Quantité correcte
    		HashMap<Integer, String> map = new HashMap<>();
    
            // put()
            map.put(1,"张飞");// 这里的 key 值唯一
            map.put(1,"宋江");// 如果二次插入的 key 值之前有,则替换其 value值
            map.put(2,"Jack");
            System.out.println(map);
    
            // get()
            String s1 = map.get(1);// 返回 宋江
            String s3 = map.getOrDefault(3,"三团");// 未找到,返回 三团
    
            // entrySet()
            // 该方法返回一个 Set<Map.Entry<Integer, String>> 对象
            Set<Map.Entry<Integer, String>> entries = map.entrySet();
            for (Map.Entry<Integer, String> entry : entries) {
                // 通过 entry.getKey() 和 entry.getValue() 获取每个entry对应的 k, v值
                System.out.println(entry.getKey() + " " + entry.getValue());
            }

    Quelle est la structure des données du cadre de collecte Java

    4、具体的实现类

    Quelle est la structure des données du cadre de collecte Java

    V get(Object k)
    Trouver le v correspondant selon le k spécifié, s'il n'est pas trouvé, renvoyer la valeur par défaut #🎜 🎜#
    Set> EntrySet()
    # 🎜🎜#boolean isEmpty() Jugez s'il est vide
    int size()#🎜🎜 #

    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