Maison >Java >javaDidacticiel >Convertir ArrayList en LinkedHashmap à Java

Convertir ArrayList en LinkedHashmap à Java

Linda Hamilton
Linda Hamiltonoriginal
2025-02-07 11:16:10228parcourir

Convert ArrayList to LinkedHashMap in Java

Un liendhashmap à Java maintient l'ordre d'insertion des éléments, contrairement à un hashmap régulier. La conversion d'un ArrayList en un liendhashmap nécessite d'attribuer des clés à chaque élément ArrayList. L'approche la plus simple utilise l'index ArrayList comme clé. L'itération et les comportements de tri sont similaires entre les listes de table et les hashmaps liés.

Voici une ventilation du processus de conversion, ainsi que des exemples de code Java illustrant différentes approches:

Algorithme:

  1. Initialisation: Créez un liendhashmap vide.
  2. itération: itérer via la liste Array.
  3. Création de paires de valeurs de clé: Pour chaque élément de l'arrayList, utilisez son index comme clé et l'élément lui-même comme valeur.
  4. Insertion: Ajoutez la paire de valeurs de clé au liendhashmap.
  5. Retour: Renvoie le liendhashmap peuplé.

Exemples de code java:

Approche 1: Utilisation d'une boucle

C'est l'approche la plus simple.

<code class="language-java">import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

public class ArrayListToLinkedHashMap {

    public static <t> LinkedHashMap<integer t> convert(List<t> arrayList) {
        LinkedHashMap<integer t> linkedHashMap = new LinkedHashMap<>();
        for (int i = 0; i < arrayList.size(); i++) {
            linkedHashMap.put(i + 1, arrayList.get(i)); //Index +1 as key
        }
        return linkedHashMap;
    }

    public static void main(String[] args) {
        List<integer> arrayList = new ArrayList<>(List.of(5, 16, 7, 1997, 2001));
        LinkedHashMap<integer integer> linkedHashMap = convert(arrayList);
        System.out.println("LinkedHashMap: " + linkedHashMap);
    }
}</integer></integer></integer></t></integer></t></code>

Approche 2: Utilisation des flux Java

Cette approche exploite les flux Java pour une solution plus concise.

<code class="language-java">import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.IntStream;

public class ArrayListToLinkedHashMapStreams {

    public static <t> LinkedHashMap<integer t> convert(List<t> arrayList) {
        return IntStream.range(0, arrayList.size())
                .boxed()
                .collect(Collectors.toMap(i -> i + 1, arrayList::get, (a, b) -> a, LinkedHashMap::new));
    }

    public static void main(String[] args) {
        List<integer> arrayList = new ArrayList<>(List.of(5, 16, 7, 1997, 2001));
        LinkedHashMap<integer integer> linkedHashMap = convert(arrayList);
        System.out.println("LinkedHashMap: " + linkedHashMap);
    }
}</integer></integer></t></integer></t></code>

Les deux approches obtiennent le même résultat, convertissant une liste d'array en un liendhashmap où les clés sont les indices (à partir de 1) et les valeurs sont les éléments de la liste Array. Choisissez l'approche qui convient le mieux à votre style de codage et à vos exigences de projet. L'approche des cours d'eau est généralement considérée comme plus élégante et potentiellement plus efficace pour les listes plus grandes. N'oubliez pas de gérer les exceptions potentielles (comme NullPointerException) si votre arraylist peut contenir des valeurs nulles.

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:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn