Eine LinkedHasMap in Java behält im Gegensatz zu einem regulären Hashmap die Einfügungsreihenfolge von Elementen bei. Durch das Konvertieren einer ArrayList in eine LinkedHashMap muss jedes ArrayList -Element Schlüssel zugewiesen werden. Der einfachste Ansatz verwendet den ArrayList -Index als Schlüssel. Iteration und Sortierverhalten sind zwischen Arraylisten und LinkedHashMaps ähnlich.
Hier ist eine Aufschlüsselung des Konvertierungsprozesses zusammen mit Java -Code -Beispielen, die verschiedene Ansätze veranschaulichen:
Algorithmus:
Java -Code -Beispiele:
Ansatz 1: Verwenden einer Schleife
Dies ist der einfachste Ansatz.
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); } }
Ansatz 2: Verwenden von Java -Streams
Dieser Ansatz nutzt Java -Streams für eine prägnantere Lösung.
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); } }
Beide Ansätze erzielen das gleiche Ergebnis und konvertieren eine ArrayList in eine LinkedHasMap, bei der die Schlüssel die Indizes sind (ab 1) und die Werte die Elemente der ArrayList. Wählen Sie den Ansatz aus, der Ihren Codierungsstil und Projektanforderungen am besten entspricht. Der Streams -Ansatz wird allgemein als eleganter und potenziell effizienter für größere Listen angesehen. Denken Sie daran, potenzielle Ausnahmen zu behandeln (wie NullPointerException
), wenn Ihre ArrayList möglicherweise Nullwerte enthält.
Das obige ist der detaillierte Inhalt vonKonvertieren Sie ArrayList in LinkedHasMap in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!