JavaRush /Java blogi /Random-UZ /Kofe tanaffusi №129. LinkedList va ArrayList o'rtasidagi ...

Kofe tanaffusi №129. LinkedList va ArrayList o'rtasidagi farq nima? Java 19 da yangi xususiyatlar keladi

Guruhda nashr etilgan

LinkedList va ArrayList o'rtasidagi farq nima?

Manba: Rrtutors.com Agar siz Java dasturlashda yangi bo'lsangiz, to'plamlar bilan ishlashda qaysi birini ishlatish yaxshiroq ekanligi haqida savol tug'ilishi kerak: LinkedList yoki ArrayList. Ushbu ikkala sinf ham o'xshash funktsiyalarni bajaradi, shuning uchun ba'zan ishingizda qaysi birini ishlatish yaxshiroq ekanligini hal qilish qiyin bo'lishi mumkin. Ushbu postda biz ikki sinf o'rtasidagi farqlarni aniqlaymiz va ularni qayerda va qachon ishlatishni muhokama qilamiz. Kofe tanaffusi №129.  LinkedList va ArrayList o'rtasidagi farq nima?  Java 19 - 1 da keladigan yangi xususiyatlar

Java-da ArrayList va LinkedList o'rtasidagi farq

Keling, ArrayList va LinkedListni ularning mezonlari asosida taqqoslaylik:

Manipulyatsiya

Ikkala holatda ham massivni manipulyatsiya qilish tezligida farq bor. ArrayList massivlarni boshqarishda LinkedListga qaraganda sekinroq. Buning sababi, LinkedList-ning tugunga asoslanganligi va biroz o'zgartirishni talab qilmaydi.

Kirish

ArrayList ma'lumotlarni tezroq saqlaydi va oladi. Boshqa tomondan, LinkedList tezroq ma'lumotlarni qayta ishlashni qo'llab-quvvatlaydi.

Amalga oshirish

ArrayList faqat ro'yxatni amalga oshiradi, LinkedList esa ro'yxat va navbatni amalga oshiradi. LinkedList ham tez-tez navbat sifatida ishlatiladi.

Ichki amalga oshirish

ArrayList o'z elementlarini dinamik massivda saqlaydi, LinkedList esa ikki marta bog'langan ro'yxatni ishlatadi.

ArrayList va LinkedList-dan qachon foydalanish kerak?

ArrayList faqat o'qish uchun mo'ljallangan to'plam bilan ishlash uchun mos keladi, LinkedList esa qo'shish va o'chirish kabi turli xil ma'lumotlarni o'zgartirish imkonini beruvchi to'plam bilan ishlash uchun mos keladi.

LinkedList misoli:

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 misoli:

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: Java 19 da yangi xususiyatlar keladi

Manba: InfoWorld Virtual ish zarrachalari, kalit soʻzlar uchun naqsh moslashuvi, vektor API va Linux/RISC-V porti shu sentyabr oyida qisqa muddatli qoʻllab-quvvatlanadigan tilning yangi nashri Java 19 da keladi. Bundan tashqari, Java Development Kit 19 yaqinda yana bir xususiyatni taqdim etdi: ma'lumotlarni navigatsiya qilish va qayta ishlash uchun Yozuv naqshlarini oldindan ko'rish. Java tilini takomillashtirish bo'yicha davom etayotgan rejaning bir qismi sifatida JDK 19 yoki oddiygina Java 19 generiklardan tortib qiymat ob'ektlarigacha bo'lgan juda ko'p funksiyalarni o'z ichiga olishi mumkin. JDK 19 2022-yil 22-martda taqdim etilgan JDK 18-dan keyingi navbatdagi yangilanish bo‘ladi. Java ning standart versiyasi har olti oyda chiqariladi. OpenJDK ishlab chiquvchilari JDK 19 uchun rasmiy relizlar jadvalini e’lon qilishdi. Unga ko‘ra, barqaror reliz 20-sentabrda paydo bo‘ladi. Bungacha ishlab chiquvchilar 9-iyun va 21-iyul kunlari chiqariladigan dastlabki tuzilmalar bilan tanishishlari mumkin. Nomzodlar 11-avgust va 25-avgust kunlari eʼlon qilinadi. JDK 19 ning dastlabki kirish tuzilmalari jdk.java.net/19 da mavjud . JDK 19da taqdim etilgan xususiyatlar quyidagilarni o'z ichiga oladi:
  • Предварительный просмотр шаблонов записей для разбора значений записей. Шаблоны записей и шаблоны типов могут быть вложены друг в друга, чтобы обеспечить декларативную, мощную и компонуемую форму навигации и обработки данных. Идея этой функции состоит в том, чтобы добавить расширение сопоставления шаблонов для выражения более сложных составных requestов данных без изменения синтаксиса or семантики шаблонов типов. Это предложение основано на сопоставлении шаблонов для instanceof, представленном в JDK 16 в марте 2021 года. Далее, в будущих планах может потребоваться расширение шаблонов записей с помощью таких возможностей, How шаблоны массивов и vararg-шаблоны. Запись шаблонов является частью Project Amber, направленного на изучение и развитие небольших функций Java, ориентированных на производительность.

  • Предварительный просмотр чужой функции и API памяти. Он представит API, с помощью которого Java-программы смогут взаимодействовать с codeом и данными вне среды выполнения Java.

    Благодаря эффективному вызову внешних функций (codeа вне среды выполнения Java) и безопасному доступу к внешней памяти (памяти, не управляемой JVM) API позволит программам Java вызывать собственные библиотеки и обрабатывать собственные данные без Howой-либо опасности для Java Native Interface (JNI).

  • Предварительный просмотр виртуальных потоков (virtual threads). Это предложение представляет собой облегченные потоки, которые значительно сокращают усorя по написанию, обслуживанию и наблюдению за высокопроизводительными параллельными applicationsми. Идея предложения состоит в обеспечении возможности масштабирования serverных приложений, написанных в простом стиле “поток на request” (thread-per-request) с оптимальным использованием оборудования. Это позволит внедрять в code, использующий java.langThread API, виртуальные потоки с минимальными изменениями, а также устранять неполадки, выполнять отладку и профorрование виртуальных потоков с помощью существующих инструментов JDK.

  • Третья предварительная version сопоставления шаблонов для выражений и операторов switch. Она расширяет сопоставление шаблонов (pattern matching) до switch, чтобы позволить тестировать выражение по ряду шаблонов, каждый из которых имеет определенное действие. Благодаря этому сложные requestы, ориентированные на данные, могут быть выражены лаконично и безопасно. Эта функция ранее была предварительно представлена ​​в JDK 17 и JDK 18. В третьей предварительной версии будут добавлены улучшения, включая замену защищенных шаблонов when предложениями в switch-блоках. Идея предложения состоит в расширении выразительности и применимости switch-выражений и операторов.

  • Vektor API ning to'rtinchi inkubatsiyasi vektorli hisoblashlarni ifodalaydi, ular ish vaqtida ishonchli tarzda qo'llab-quvvatlanadigan protsessor arxitekturalarida optimal vektor ko'rsatmalariga to'planadi. Bu ekvivalent skaler hisob-kitoblarga qaraganda yaxshiroq ishlashni ta'minlaydi. Yangi API-dan foydalanadigan dasturchilar HotSpot avtovektorizatoridan foydalangan holda Java-da murakkab vektor algoritmlarini yozish imkoniyatiga ega bo'ladilar, ammo vektorizatsiyani oldindan aytib bo'ladigan va ishonchli qiladigan maxsus model bilan. Vector API ilgari JDK 16, JDK 17 va JDK 19 da inkubatsiya qilingan.

    Vektor API-ga yana bir qo'shimcha sifatida bit bo'yicha integral bo'lak operatsiyalari bir bit sonini hisoblash, bit tartibini teskari o'zgartirish, bitni siqish va kengaytirish kabi operatsiyalarni o'z ichiga oladi.

  • Linux/RISC-V porti bilan Java keng ko'lamli til asboblar to'plami tomonidan qo'llab-quvvatlanadigan apparat ko'rsatmalar to'plamini qo'llab-quvvatlaydi. RISC-V tegishli AXS turkumidir. Linux/RISC-V porti faqat RV64GV RISC-V konfiguratsiyasini qo'llab-quvvatlaydi, vektor ko'rsatmalarini o'z ichiga olgan 64 bitli umumiy maqsadli ISA.

    Port quyidagi HotSpot virtual mashinasi variantlarini qo'llab-quvvatlaydi: shablon tarjimoni, JIT kompilyatori C1 (mijoz), JIT kompilyatori C2 (server) va barcha joriy asosiy axlat yig'uvchilar, jumladan ZGC va Shenandoah.

JDK 18 singari, JDK 19 ham olti oylik qo'llab-quvvatlanadigan qisqa muddatli versiya bo'ladi. Oldingi nashr, JDK 17, bir necha yil davomida kafolatlangan qo'llab-quvvatlanadigan LTS versiyasi edi. U 2021-yil 14-sentabrda taqdim etilgan.
Izohlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION