JavaRush /Java Blog /Random-TL /Coffee break #129. Ano ang pagkakaiba sa pagitan ng Linke...

Coffee break #129. Ano ang pagkakaiba sa pagitan ng LinkedList at ArrayList? Mga bagong feature na darating sa Java 19

Nai-publish sa grupo

Ano ang pagkakaiba sa pagitan ng LinkedList at ArrayList?

Pinagmulan: Rrtutors.com Kung bago ka sa Java programming, malamang na iniisip mo kung alin ang mas mahusay na gamitin kapag nagtatrabaho sa mga koleksyon: LinkedList o ArrayList. Pareho sa mga klase na ito ay gumaganap ng magkatulad na pag-andar, kaya minsan ay mahirap magpasya kung alin ang mas mahusay na gamitin sa iyong trabaho. Sa post na ito, tutukuyin natin ang mga pagkakaiba sa pagitan ng dalawang klase at tatalakayin kung saan at kailan gagamitin ang mga ito. Coffee break #129.  Ano ang pagkakaiba sa pagitan ng LinkedList at ArrayList?  Mga bagong feature na darating sa Java 19 - 1

Pagkakaiba sa pagitan ng ArrayList at LinkedList sa Java

Ihambing natin ang ArrayList at LinkedList batay sa kanilang pamantayan:

Pagpapatakbo

Sa parehong mga kaso mayroong pagkakaiba sa bilis ng pagmamanipula ng array. Ang ArrayList ay mas mabagal na manipulahin ang mga array kaysa sa LinkedList. Ito ay dahil sa katotohanan na ang LinkList ay nakabatay sa node at hindi nangangailangan ng kaunting paglilipat.

Access

Ang ArrayList ay nag-iimbak at kumukuha ng data nang mas mabilis. Sa kabilang banda, sinusuportahan ng LinkList ang mas mabilis na pagproseso ng data.

Pagpapatupad

Ang ArrayList ay nagpapatupad lamang ng isang listahan, habang ang LinkList ay nagpapatupad ng parehong listahan at isang pila. Madalas ding ginagamit ang LinkList bilang isang pila.

Panloob na pagpapatupad

Iniimbak ng ArrayList ang mga elemento nito sa isang dynamic na array, habang gumagamit ang LinkedList ng dobleng naka-link na listahan.

Kailan gagamitin ang ArrayList at LinkedList?

Ang ArrayList ay angkop para sa pagtatrabaho sa isang read-only na koleksyon, habang ang LinkList ay angkop para sa pagtatrabaho sa isang koleksyon na nagbibigay-daan sa iba't ibang pagbabago ng data, tulad ng pagdaragdag at pagtanggal.

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

    }

}

Halimbawa ng 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: Mga bagong feature na darating sa Java 19

Source: InfoWorld Virtual thread, pattern matching para sa mga switch statement, isang vector API, at isang Linux/RISC-V port ay darating lahat ngayong Setyembre sa Java 19, isang bagong release ng wika na may panandaliang suporta. Bilang karagdagan, ang Java Development Kit 19 ay nagpakilala kamakailan ng isa pang tampok: pag-preview ng mga pattern ng Record para sa pag-navigate at pagproseso ng data. Bilang bahagi ng patuloy na plano para pahusayin ang wikang Java, ang JDK 19, o simpleng Java 19, ay may potensyal na maglaman ng malaking bilang ng mga feature, mula sa mga generic hanggang sa mga value na bagay. Ang JDK 19 ang magiging susunod na update kasunod ng JDK 18, na ipinakilala noong Marso 22, 2022. Ang karaniwang bersyon ng Java ay inilabas tuwing anim na buwan. Inilathala ng mga developer ng OpenJDK ang opisyal na iskedyul ng paglabas para sa JDK 19. Ayon dito, lalabas ang stable na release sa Setyembre 20. Bago ito, magiging pamilyar ang mga developer sa mga paunang build, na ipapalabas sa Hunyo 9 at Hulyo 21. Ang mga kandidato sa pagpapalaya ay ilalathala sa Agosto 11 at Agosto 25. Ang mga pagbuo ng maagang pag-access ng JDK 19 ay available sa jdk.java.net/19 . Kasama sa mga feature na inaalok sa JDK 19 ang:
  • I-preview ang mga template ng record para i-parse ang mga value ng record. Maaaring i-nested ang mga template ng record at uri ng mga template upang magbigay ng isang deklaratibo, makapangyarihan, at composable na paraan ng nabigasyon at pagproseso ng data. Ang ideya sa likod ng feature na ito ay magdagdag ng extension ng pagtutugma ng pattern upang magpahayag ng mas kumplikadong mga query ng data ng tambalan nang hindi binabago ang syntax o semantics ng mga pattern ng uri. Ang panukalang ito ay batay sa pattern na pagtutugma para sa halimbawa ng ipinakilala sa JDK 16 noong Marso 2021. Dagdag pa, ang mga plano sa hinaharap ay maaaring mangailangan ng pagpapalawak ng mga template ng record na may mga tampok tulad ng mga template ng array at mga template ng vararg. Ang entry ng mga template ay bahagi ng Project Amber , na naglalayong galugarin at bumuo ng maliliit, na nakatuon sa pagganap na mga tampok ng Java.

  • Alien Function Preview at Memory API . Ito ay magpapakilala ng isang API na nagpapahintulot sa mga Java program na makipag-ugnayan sa code at data sa labas ng Java runtime.

    Sa pamamagitan ng mahusay na pagtawag sa mga panlabas na function (code sa labas ng Java runtime) at secure na pag-access sa external memory (memory na hindi pinamamahalaan ng JVM), papayagan ng API ang mga Java program na tumawag sa mga native na library at magproseso ng native data nang walang anumang banta sa Java Native Interface (JNI). ).

  • Preview ng mga virtual na thread. Ang handog na ito ay nagpapakilala ng magaan na mga thread na lubos na nakakabawas sa pagsusumikap sa pagsulat, pagpapanatili, at pagsubaybay sa mga high-performance na parallel application. Ang ideya ng panukala ay magbigay ng kakayahang sukatin ang mga application ng server na nakasulat sa isang simpleng istilo ng thread-per-request na may pinakamainam na paggamit ng hardware. Ito ay magbibigay-daan sa iyong ipatupad ang mga virtual na thread sa code na gumagamit ng java.langThread API na may kaunting pagbabago, at magbibigay-daan sa iyong i-troubleshoot, i-debug, at i-profile ang mga virtual na thread gamit ang mga umiiral nang JDK tool.

  • Pangatlong preview ng pagtutugma ng pattern para sa mga expression at switch statement. Pinapalawak nito ang pagtutugma ng pattern upang lumipat upang payagan ang isang expression na masuri laban sa isang bilang ng mga pattern, bawat isa ay may partikular na aksyon. Nagbibigay-daan ito sa mga kumplikadong query na nakasentro sa data na maipahayag nang maikli at ligtas. Dati nang na-preview ang feature na ito sa JDK 17 at JDK 18. Ang ikatlong preview ay magdaragdag ng mga pagpapabuti, kabilang ang pagpapalit ng protektado kapag may mga pattern na may mga clause sa switch block. Ang ideya ng panukala ay upang palawakin ang pagpapahayag at kakayahang magamit ng mga switch expression at operator.

  • Ang ika-apat na incubation ng vector API ay magpapahayag ng mga vector computations na mapagkakatiwalaang mag-compile sa runtime sa pinakamainam na mga tagubilin sa vector sa mga sinusuportahang arkitektura ng processor. Magbibigay ito ng mas mahusay na pagganap kaysa sa katumbas na mga kalkulasyon ng scalar. Ang mga developer na gumagamit ng bagong API ay makakapagsulat ng mga kumplikadong vector algorithm sa Java gamit ang autovectorizer ng HotSpot, ngunit may custom na modelo na ginagawang mas predictable at maaasahan ang vectorization. Ang Vector API ay dating incubated sa JDK 16, JDK 17, at JDK 19.

    Bilang isa pang karagdagan sa vector API, ang mga bitwise integral na operasyon sa buong lane ay palalawakin upang isama ang mga operasyon tulad ng pagbibilang ng bilang ng isang bit, pag-reverse ng bit order, at bit compression at expansion.

  • Gamit ang Linux/RISC-V port , ang Java ay makakakuha ng hardware instruction set support na sinusuportahan na ng malawak na hanay ng mga toolkit ng wika. Ang RISC-V ay isang pamilya ng mga kaugnay na ISA. Susuportahan lamang ng Linux/RISC-V port ang RV64GV RISC-V configuration, isang 64-bit general purpose ISA na may kasamang mga tagubilin sa vector.

    Susuportahan ng port ang sumusunod na mga opsyon sa virtual machine ng HotSpot: template interpreter, JIT compiler C1 (client), JIT compiler C2 (server), at lahat ng kasalukuyang pangunahing kolektor ng basura, kabilang ang ZGC at Shenandoah.

Tulad ng JDK 18, ang JDK 19 ay magiging isang panandaliang release na may anim na buwang suporta. Ang nakaraang release, JDK 17, ay isang LTS release na may garantisadong suporta sa loob ng ilang taon. Ipinakilala ito noong Setyembre 14, 2021.
Mga komento
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION