JavaRush /Java-Blog /Random-DE /Kaffeepause Nr. 129. Was ist der Unterschied zwischen Lin...

Kaffeepause Nr. 129. Was ist der Unterschied zwischen LinkedList und ArrayList? Neue Funktionen in Java 19

Veröffentlicht in der Gruppe Random-DE

Was ist der Unterschied zwischen LinkedList und ArrayList?

Quelle: Rrtutors.com Wenn Sie neu in der Java-Programmierung sind, fragen Sie sich bestimmt, was für die Arbeit mit Sammlungen besser geeignet ist: LinkedList oder ArrayList. Beide Klassen führen ähnliche Funktionen aus, sodass es manchmal schwierig sein kann, zu entscheiden, welche für Ihre Arbeit besser geeignet ist. In diesem Beitrag definieren wir die Unterschiede zwischen den beiden Klassen und diskutieren, wo und wann sie verwendet werden sollten. Kaffeepause Nr. 129.  Was ist der Unterschied zwischen LinkedList und ArrayList?  Neue Funktionen in Java 19 - 1

Unterschied zwischen ArrayList und LinkedList in Java

Vergleichen wir ArrayList und LinkedList anhand ihrer Kriterien:

Manipulation

In beiden Fällen gibt es einen Unterschied in der Geschwindigkeit der Array-Manipulation. ArrayList bearbeitet Arrays langsamer als LinkedList. Dies liegt daran, dass LinkedList knotenbasiert ist und keine große Bitverschiebung erfordert.

Zugang

ArrayList speichert und ruft Daten schneller ab. Andererseits unterstützt LinkedList eine schnellere Datenverarbeitung.

Implementierung

ArrayList implementiert nur eine Liste, während LinkedList sowohl eine Liste als auch eine Warteschlange implementiert. LinkedList wird häufig auch als Warteschlange verwendet.

Interne Umsetzung

Eine ArrayList speichert ihre Elemente in einem dynamischen Array, während eine LinkedList eine doppelt verknüpfte Liste verwendet.

Wann werden ArrayList und LinkedList verwendet?

ArrayList eignet sich für die Arbeit mit einer schreibgeschützten Sammlung, während LinkedList für die Arbeit mit einer Sammlung geeignet ist, die verschiedene Datenänderungen wie das Hinzufügen und Löschen ermöglicht.

LinkedList-Beispiel:

import java.util.LinkedList;

import java.util.List;

public class LinkeddExample {

    public static void main(String[] args) {

        List<String> myGroup=new LinkedList<>();

        myGroup.add("Pohekar");

        myGroup.add("Sumedh");

        myGroup.add("Nikir");

        System.out.println("Create Group: "+myGroup);

        myGroup.remove("Pohekar");

        System.out.println("Remove Group element: "+myGroup);

        myGroup.set(1,"Niha");

        System.out.println("Modify Group: "+myGroup);

    }

}

ArrayList-Beispiel:

import java.util.ArrayList;

import java.util.List;

public class ArrayListExca {

    public static void main(String[] args) {

        List<String> Pro=new ArrayList<>();

        Pro.add("PythonPro");

        Pro.add("JavaPro");

        Pro.add("C#Pro");



        System.out.println("Traversing ArrayList...");

        for(String s:Pro){

            System.out.println(s);


    }

    }

}

JDK 19: Neue Funktionen in Java 19

Quelle: InfoWorld Virtuelle Threads, Mustervergleich für Switch-Anweisungen, eine Vektor-API und eine Linux/RISC-V-Portierung kommen diesen September in Java 19, einer neuen Version der Sprache mit kurzfristiger Unterstützung. Darüber hinaus wurde mit dem Java Development Kit 19 kürzlich eine weitere Funktion eingeführt: die Vorschau von Datensatzmustern für die Datennavigation und -verarbeitung. Als Teil des laufenden Plans zur Verbesserung der Java-Sprache hat JDK 19, oder einfach Java 19, das Potenzial, eine große Anzahl von Funktionen zu enthalten, von Generika bis hin zu Wertobjekten. JDK 19 wird das nächste Update nach JDK 18 sein, das am 22. März 2022 eingeführt wurde. Die Standardversion von Java wird alle sechs Monate veröffentlicht. Die OpenJDK-Entwickler haben den offiziellen Release-Zeitplan für JDK 19 veröffentlicht. Demnach soll die stabile Veröffentlichung am 20. September erscheinen. Zuvor können sich Entwickler mit den vorläufigen Builds vertraut machen, die am 9. Juni und 21. Juli veröffentlicht werden. Release-Kandidaten werden am 11. und 25. August veröffentlicht. Early-Access-Builds von JDK 19 sind unter jdk.java.net/19 verfügbar . Zu den in JDK 19 angebotenen Funktionen gehören:
  • Zeigen Sie eine Vorschau der Datensatzvorlagen an , um Datensatzwerte zu analysieren. Datensatzvorlagen und Typvorlagen können verschachtelt werden, um eine deklarative, leistungsstarke und zusammensetzbare Form der Navigation und Datenverarbeitung bereitzustellen. Die Idee hinter dieser Funktion besteht darin, eine Mustervergleichserweiterung hinzuzufügen, um komplexere zusammengesetzte Datenabfragen auszudrücken, ohne die Syntax oder Semantik von Typmustern zu ändern. Dieser Vorschlag basiert auf dem Mustervergleich, der im März 2021 in JDK 16 eingeführt wurde. Darüber hinaus erfordern zukünftige Pläne möglicherweise die Erweiterung von Datensatzvorlagen um Funktionen wie Array-Vorlagen und Vararg-Vorlagen. Der Vorlageneintrag ist Teil des Projekts Amber , dessen Ziel es ist, kleine, leistungsorientierte Java-Funktionen zu erforschen und zu entwickeln.

  • Alien- Funktionsvorschau und Speicher-API . Es wird eine API eingeführt, die es Java-Programmen ermöglicht, mit Code und Daten außerhalb der Java-Laufzeit zu interagieren.

    Durch den effizienten Aufruf externer Funktionen (Code außerhalb der Java-Laufzeit) und den sicheren Zugriff auf externen Speicher (Speicher, der nicht von der JVM verwaltet wird) ermöglicht die API Java-Programmen, native Bibliotheken aufzurufen und native Daten zu verarbeiten, ohne dass das Java Native Interface (JNI) gefährdet wird ).

  • Vorschau auf virtuelle Threads. Dieses Angebot führt leichtgewichtige Threads ein, die den Aufwand für das Schreiben, Warten und Überwachen leistungsstarker paralleler Anwendungen erheblich reduzieren. Die Idee des Vorschlags besteht darin, die Möglichkeit zu bieten, Serveranwendungen, die in einem einfachen Thread-pro-Anfrage-Stil geschrieben wurden, bei optimaler Hardwarenutzung zu skalieren. Auf diese Weise können Sie virtuelle Threads mit minimalen Änderungen in Code implementieren, der die java.langThread-API verwendet, und mit vorhandenen JDK-Tools Fehler bei virtuellen Threads beheben, debuggen und Profile erstellen.

  • Dritte Vorschau des Mustervergleichs für Ausdrücke und Switch-Anweisungen. Es erweitert den Mustervergleich um Switch, um das Testen eines Ausdrucks anhand einer Reihe von Mustern zu ermöglichen, von denen jedes eine bestimmte Aktion hat. Dadurch können komplexe datenzentrierte Abfragen prägnant und sicher ausgedrückt werden. Diese Funktion wurde zuvor in JDK 17 und JDK 18 in der Vorschau angezeigt. Die dritte Vorschau wird Verbesserungen hinzufügen, einschließlich des Ersetzens geschützter When-Muster durch Klauseln in Switch-Blöcken. Die Idee des Vorschlags besteht darin, die Ausdruckskraft und Anwendbarkeit von Schalterausdrücken und -operatoren zu erweitern.

  • Die vierte Inkubation der Vektor-API wird Vektorberechnungen ausdrücken, die zur Laufzeit zuverlässig in optimale Vektoranweisungen auf unterstützten Prozessorarchitekturen kompiliert werden. Dies bietet eine bessere Leistung als entsprechende Skalarberechnungen. Entwickler, die die neue API verwenden, können mithilfe des Autovektorisierers von HotSpot komplexe Vektoralgorithmen in Java schreiben, jedoch mit einem benutzerdefinierten Modell, das die Vektorisierung vorhersehbarer und zuverlässiger macht. Die Vector API wurde zuvor in JDK 16, JDK 17 und JDK 19 inkubiert.

    Als weitere Ergänzung zur Vektor-API werden bitweise integrale spurweite Operationen um Operationen wie das Zählen der Anzahl von Eins-Bits, das Umkehren der Bitreihenfolge sowie die Bitkomprimierung und -expansion erweitert.

  • Mit der Linux/RISC-V -Portierung erhält Java Hardware-Befehlssatzunterstützung, die bereits von einer Vielzahl von Sprach-Toolkits unterstützt wird. RISC-V ist eine Familie verwandter ISAs. Der Linux/RISC-V-Port unterstützt nur die RV64GV RISC-V-Konfiguration, eine 64-Bit-Allzweck-ISA, die Vektoranweisungen enthält.

    Der Port unterstützt die folgenden HotSpot-Optionen für virtuelle Maschinen: Vorlageninterpreter, JIT-Compiler C1 (Client), JIT-Compiler C2 (Server) und alle aktuellen wichtigen Garbage Collectors, einschließlich ZGC und Shenandoah.

Wie JDK 18 wird auch JDK 19 eine kurzfristige Veröffentlichung mit sechs Monaten Support sein. Die vorherige Version, JDK 17, war eine LTS-Version mit mehrjähriger Supportgarantie. Es wurde am 14. September 2021 eingeführt.
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION