ArrayList va LinkedList oʻrtasidagi farq

Mundarija:

ArrayList va LinkedList oʻrtasidagi farq
ArrayList va LinkedList oʻrtasidagi farq

Video: ArrayList va LinkedList oʻrtasidagi farq

Video: ArrayList va LinkedList oʻrtasidagi farq
Video: LinkedList vs ArrayList in Java Tutorial - Which Should You Use? 2024, Noyabr
Anonim

Asosiy farq – ArrayList va LinkedList

Toʻplamlar maʼlumotlarni saqlash uchun foydalidir. Oddiy massivda massiv o'lchami o'rnatiladi. Ba'zan kerak bo'lganda o'sishi mumkin bo'lgan massivlarni yaratish talab qilinadi. Java kabi dasturlash tillarida to'plamlar mavjud. Bu sinflar va interfeyslar to'plamiga ega bo'lgan ramka. U bir guruh elementlar uchun idish bo'lib xizmat qiladi. To'plamlar elementlar to'plamini saqlash, yangilash, olish imkonini beradi. Bu ro'yxatlar, to'plamlar, daraxtlar va xaritalar kabi ma'lumotlar tuzilmalari bilan ishlashga yordam beradi. Ro'yxat Collection ramkasining interfeysidir. ArrayList va LinkedList to'plamlar doirasidagi ikkita sinfdir. Ular yig'ish interfeysi va List interfeysini amalga oshiradilar. Ushbu maqolada ArrayList va LinkedList o'rtasidagi farq muhokama qilinadi. ArrayList - AbstractListni kengaytiruvchi va List interfeysini amalga oshiradigan sinf bo'lib, u ichki ma'lumotlar elementlarini saqlash uchun dinamik massivdan foydalanadi. LinkedList - bu AbstractSequentialListni kengaytiradigan va ma'lumotlar elementlarini saqlash uchun ikki marta bog'langan ro'yxatni ishlatadigan List, Deque va Queue interfeyslarini amalga oshiradigan sinf. Bu ArrayList va LinkedList o'rtasidagi asosiy farq.

ArrayList nima?

ArrayList klassi dinamik massivlarni yaratish uchun ishlatiladi. Oddiy massivdan farqli o'laroq, dinamik massivning o'lchami aniq emas. ArrayList klassi yordamida yaratilgan ob'ektga ro'yxatdagi elementlar to'plamini saqlashga ruxsat beriladi. Imkoniyatlar avtomatik ravishda ortadi, shuning uchun dasturchi elementlarni ro'yxatga qo'shishi mumkin. ArrayList klassi List interfeysini amalga oshiradigan AbstractList sinfini kengaytiradi. Shuning uchun List interfeysining usullaridan ArrayList tomonidan foydalanish mumkin. Elementlarga kirish uchun get() usuli qo'llaniladi. Ro'yxatga elementlar qo'shish uchun add() usulidan foydalanish mumkin. Remove() usuli elementni roʻyxatdan olib tashlash uchun ishlatiladi. Quyidagi dasturga qarang.

ArrayList va LinkedList o'rtasidagi farq
ArrayList va LinkedList o'rtasidagi farq
ArrayList va LinkedList o'rtasidagi farq
ArrayList va LinkedList o'rtasidagi farq

01-rasm: Massivlar roʻyxatiga misol

Yuqoridagi dasturga muvofiq ArrayList obyekti yaratiladi. Qo'shish usuli yordamida elementlarni dinamik ravishda qo'shish mumkin. "A", "B", "C", "D" va "E" elementlari qo'shish usuli yordamida qo'shiladi. O'chirish usuli elementni ro'yxatdan olib tashlash uchun ishlatiladi. O'chirish usuliga 4 o'tkazilganda, 4-indeksdagi "E" harfi ro'yxatdan o'chiriladi. For tsikli yordamida ro'yxatni takrorlashda A, B, C va D harflari chop etiladi.

LinkedList nima?

ArrayListga oʻxshab, LinkedList maʼlumotlar elementlarini dinamik saqlash uchun ishlatiladi. LinkedList klassi yordamida yaratilgan ob'ektga ro'yxatdagi elementlar to'plamini saqlashga ruxsat beriladi. Imkoniyatlar avtomatik ravishda ortadi, shuning uchun dasturchi elementlarni ro'yxatga qo'shishi mumkin. U ichki ma'lumotlarni saqlash uchun ikki marta bog'langan ro'yxatni ishlatadi. Ikki marta bog'langan ro'yxatda ma'lumotlar tugunlar sifatida saqlanadi. Har bir tugun ikkita havolani o'z ichiga oladi. Birinchi havola oldingi tugunga ishora qiladi. Keyingi havola ketma-ketlikdagi keyingi tugunga ishora qiladi.

LinkedList klassi AbstractSequentialList sinfini kengaytiradi va List interfeysini amalga oshiradi. Shuning uchun List interfeysi usullari LinkedList tomonidan ishlatilishi mumkin. Get() usuli roʻyxat elementlariga kirish uchun ishlatilishi mumkin. Ro'yxatga elementlar qo'shish uchun add() usulidan foydalanish mumkin. Remove() usuli elementni roʻyxatdan olib tashlash uchun ishlatiladi. Quyidagi dasturga qarang.

ArrayList va LinkedList o'rtasidagi asosiy farq
ArrayList va LinkedList o'rtasidagi asosiy farq
ArrayList va LinkedList o'rtasidagi asosiy farq
ArrayList va LinkedList o'rtasidagi asosiy farq

02-rasm: LinkedList bilan namuna

Yuqoridagi dasturga muvofiq, LinkedList ob'ekti yaratilgan. Qo'shish usuli yordamida elementlarni dinamik ravishda qo'shish mumkin. "A", "B", "C", "D" va "E" elementlari qo'shish usuli yordamida qo'shiladi. O'chirish usuli elementni ro'yxatdan olib tashlash uchun ishlatiladi. O'chirish usuliga 4 o'tkazilganda, 4-indeksdagi "E" harfi ro'yxatdan o'chiriladi. For tsikli yordamida takrorlanganda A, B, C va D harflari chop etiladi.

ArrayList va LinkedList oʻrtasidagi oʻxshashliklar qanday?

  • ArrayList ham, LinkedList ham List interfeysini amalga oshiradi.
  • ArrayList ham, LinkedList ham ikki nusxadagi elementlarni oʻz ichiga olishi mumkin.
  • Ham ArrayList, ham LinkedList qoʻshish tartibini saqlaydi.

ArrayList va LinkedList oʻrtasidagi farq nima?

ArrayList va LinkedList

ArrayList - AbstractListni kengaytiruvchi va ma'lumotlar elementlarini saqlash uchun ichki dinamik massivdan foydalanadigan List interfeysini amalga oshiradigan sinf. LinkedList - AbstractSequentialListni kengaytiruvchi va List, Deque, Queue interfeyslarini amalga oshiradigan sinf boʻlib, u ichki maʼlumotlar elementlarini saqlash uchun ikki marta bogʻlangan roʻyxatni ishlatadi.
Elementlarga kirish
ArrayList elementlariga kirish LinkedListga qaraganda tezroq. LinkedList elementlariga kirish ArrayListga qaraganda sekinroq.
Elementlarni boshqarish
ArrayList elementlarini manipulyatsiya qilish LinkedListga qaraganda sekinroq. LinkedList elementlarini manipulyatsiya qilish ArrayListga qaraganda tezroq.
Xulq-atvor
ArrayList roʻyxat sifatida ishlaydi. LinkedList roʻyxat va navbat sifatida ishlaydi.

Xulosa – ArrayList va LinkedList

Toʻplam tizimi roʻyxatlar, daraxtlar, xaritalar va toʻplamlar kabi maʼlumotlar tuzilmalari bilan ishlash imkonini beradi. Ro'yxat yig'ish ramkasining interfeysidir. Ushbu maqola ArrayList va LinkedList o'rtasidagi farqni muhokama qildi. ArrayList - AbstractListni kengaytiruvchi va ma'lumotlar elementlarini saqlash uchun dinamik massivdan ichki foydalanadigan List interfeysini amalga oshiradigan sinf. LinkedList - bu AbstractSequentialListni kengaytiruvchi va List, Deque, Queue interfeyslarini amalga oshiradigan sinf bo'lib, u ichki ma'lumotlar elementlarini saqlash uchun ikki marta bog'langan ro'yxatni ishlatadi. Bu ArrayList va LinkedList o'rtasidagi farq.

Tavsiya: