JavaRush /Blog Jawa /Random-JV /Ngopi #129. Apa bedane LinkedList lan ArrayList? Fitur an...

Ngopi #129. Apa bedane LinkedList lan ArrayList? Fitur anyar teka ing Jawa 19

Diterbitake ing grup

Apa bedane LinkedList lan ArrayList?

Sumber: Rrtutors.com Yen sampeyan anyar ing program Java, sampeyan kudu mikir sing luwih apik digunakake nalika nggarap koleksi: LinkedList utawa ArrayList. Loro-lorone kelas kasebut nindakake fungsi sing padha, saengga kadhangkala angel kanggo mutusake endi sing luwih apik digunakake ing pakaryan sampeyan. Ing kirim iki, kita bakal nemtokake beda antarane rong kelas lan ngrembug ing ngendi lan kapan nggunakake. Ngopi #129.  Apa bedane LinkedList lan ArrayList?  Fitur anyar teka ing Jawa 19 - 1

Bedane antarane ArrayList lan LinkedList ing Jawa

Ayo mbandhingake ArrayList lan LinkedList adhedhasar kritéria:

Manipulasi

Ing kasus loro ana prabédan ing kacepetan manipulasi array. ArrayList luwih alon kanggo ngapusi array tinimbang LinkedList. Iki amarga kasunyatan manawa LinkedList adhedhasar simpul lan ora mbutuhake owah-owahan.

Akses

ArrayList nyimpen lan njupuk data luwih cepet. Ing sisih liya, LinkedList ndhukung pangolahan data sing luwih cepet.

Implementasine

ArrayList mung ngetrapake dhaptar, dene LinkedList ngetrapake dhaptar lan antrian. LinkedList uga asring digunakake minangka antrian.

Implementasi internal

ArrayList nyimpen unsur-unsur ing array dinamis, nalika LinkedList nggunakake dhaptar dobel-link.

Nalika nggunakake ArrayList lan LinkedList?

ArrayList cocok kanggo nggarap koleksi mung diwaca, dene LinkedList cocok kanggo nggarap koleksi sing ngidini macem-macem modifikasi data, kayata nambah lan mbusak.

Tuladha LinkedList:

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);

    }

}

Tuladha ArrayList:

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: Fitur anyar teka ing Jawa 19

Sumber: Utas Virtual InfoWorld , pencocokan pola kanggo pernyataan switch, API vektor, lan port Linux/RISC-V kabeh bakal teka ing September iki ing Jawa 19, rilis basa anyar kanthi dhukungan jangka pendek. Kajaba iku, Java Development Kit 19 bubar ngenalake fitur liyane: pratinjau pola Rekam kanggo navigasi lan pangolahan data. Minangka bagéan saka rencana sing terus-terusan kanggo nambah basa Jawa, JDK 19, utawa mung Jawa 19, nduweni potensi ngemot akeh fitur, saka generik nganti obyek nilai. JDK 19 bakal dadi update sabanjure sawise JDK 18, sing diwiwiti tanggal 22 Maret 2022. Versi standar Jawa dirilis saben nem sasi. Pengembang OpenJDK wis nerbitake jadwal rilis resmi kanggo JDK 19. Miturut iku, rilis stabil bakal katon ing September 20. Sadurunge iki, pangembang bakal bisa akrab karo bangunan awal, sing bakal dirilis ing tanggal 9 Juni lan 21 Juli. Kandidat rilis bakal diterbitake tanggal 11 Agustus lan 25 Agustus. Akses awal mbangun JDK 19 kasedhiya ing jdk.java.net/19 . Fitur sing ditawakake ing JDK 19 kalebu:
  • Pratinjau template rekaman kanggo ngurai nilai rekaman. Rekam cithakan lan jinis cithakan bisa nested kanggo nyedhiyani wangun deklaratif, kuat, lan composable pandhu arah lan pangolahan data. Gagasan ing mburi fitur iki yaiku nambahake ekstensi pencocokan pola kanggo nyebutake pitakon data senyawa sing luwih rumit tanpa ngganti sintaks utawa semantik saka pola jinis. Proposal iki adhedhasar pencocokan pola kanggo conto sing ditepungake ing JDK 16 ing Maret 2021. Salajengipun, rencana ing mangsa ngarep bisa uga mbutuhake template rekaman kanthi fitur kayata template array lan template vararg. Entri cithakan minangka bagéan saka Project Amber , sing tujuane kanggo njelajah lan ngembangake fitur-fitur Jawa cilik sing berorientasi kinerja.

  • Pratinjau Fungsi Alien lan API Memori . Bakal ngenalake API sing ngidini program Java bisa sesambungan karo kode lan data ing njaba runtime Java.

    Kanthi nelpon fungsi eksternal kanthi efisien (kode ing njaba runtime Java) lan ngakses memori eksternal kanthi aman (memori sing ora dikelola JVM), API bakal ngidini program Java nelpon perpustakaan asli lan ngolah data asli tanpa ancaman marang Java Native Interface (JNI). ).

  • Pratinjau utas virtual . Penawaran iki ngenalake benang entheng sing nyuda gaweyan nulis, njaga, lan ngawasi aplikasi paralel kanthi kinerja dhuwur. Gagasan proposal kasebut yaiku nyedhiyakake kemampuan kanggo skala aplikasi server sing ditulis kanthi gaya thread-per-request sing prasaja kanthi nggunakake hardware sing optimal. Iki bakal ngidini sampeyan ngleksanakake utas virtual menyang kode sing nggunakake API java.langThread kanthi owah-owahan minimal, lan ngidini sampeyan ngatasi masalah, debug, lan profil thread virtual nggunakake alat JDK sing wis ana.

  • Pratinjau katelu saka pencocokan pola kanggo ekspresi lan statement switch. Iki ngluwihi pencocokan pola kanggo ngalih kanggo ngidini ekspresi diuji marang sawetara pola, sing saben duwe tumindak tartamtu. Iki ngidini pitakon data-sentris sing rumit bisa ditulis kanthi ringkes lan aman. Fitur iki sadurunge dipratinjau ing JDK 17 lan JDK 18. Pratinjau katelu bakal nambah dandan, kalebu ngganti sing dilindhungi nalika pola karo klausa ing blok ngalih. Gagasan proposal kasebut yaiku kanggo nggedhekake ekspresif lan penerapan ekspresi lan operator switch.

  • Inkubasi kaping papat saka API vektor bakal nyatakake komputasi vektor sing andal dikompilasi nalika runtime dadi instruksi vektor sing optimal babagan arsitektur prosesor sing didhukung. Iki bakal nyedhiyakake kinerja sing luwih apik tinimbang petungan skalar sing padha. Pangembang sing nggunakake API anyar bakal bisa nulis algoritma vektor kompleks ing Jawa nggunakake autovectorizer HotSpot, nanging kanthi model khusus sing nggawe vektorisasi luwih bisa diprediksi lan dipercaya. Vector API sadurunge diinkubasi ing JDK 16, JDK 17, lan JDK 19.

    Minangka tambahan liyane kanggo API vektor, operasi lanewide integral bitwise bakal ditambahi kanggo nyakup operasi kayata ngetung nomer siji bit, mbalikke urutan bit, lan komprèsi bit lan expansion.

  • Kanthi port Linux/RISC-V , Jawa bakal entuk dhukungan set instruksi hardware sing wis didhukung dening macem-macem toolkit basa. RISC-V minangka kulawarga ISA sing gegandhengan. Linux / RISC-V port mung bakal ndhukung konfigurasi RV64GV RISC-V, 64-dicokot ISA tujuan umum sing kalebu instruksi vektor.

    Port bakal ndhukung pilihan mesin virtual HotSpot ing ngisor iki: interpreter cithakan, JIT compiler C1 (klien), JIT compiler C2 (server), lan kabeh uwuh utama saiki, kalebu ZGC lan Shenandoah.

Kaya JDK 18, JDK 19 bakal dadi rilis jangka pendek kanthi dhukungan nem wulan. Rilis sadurunge, JDK 17, minangka rilis LTS kanthi dhukungan sing dijamin nganti pirang-pirang taun. Iki dikenalake ing 14 September 2021.
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION