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:
Exemples de code java:
Approche 1: Utilisation d'une boucle
C'est l'approche la plus simple.
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); } }
Approche 2: Utilisation des flux Java
Cette approche exploite les flux Java pour une solution plus concise.
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); } }
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!