სხვაობა ArrayList-სა და LinkedList-ს შორის

Სარჩევი:

სხვაობა ArrayList-სა და LinkedList-ს შორის
სხვაობა ArrayList-სა და LinkedList-ს შორის

ვიდეო: სხვაობა ArrayList-სა და LinkedList-ს შორის

ვიდეო: სხვაობა ArrayList-სა და LinkedList-ს შორის
ვიდეო: LinkedList vs ArrayList in Java Tutorial - Which Should You Use? 2024, ნოემბერი
Anonim

ძირითადი განსხვავება – ArrayList vs LinkedList

კოლექციები სასარგებლოა მონაცემების შესანახად. ნორმალურ მასივში მასივის ზომა ფიქსირდება. ზოგჯერ საჭიროა მასივების შექმნა, რომლებიც შეიძლება გაიზარდოს საჭიროებისამებრ. პროგრამირების ენებს, როგორიცაა Java, აქვთ კოლექციები. ეს არის ჩარჩო კლასებისა და ინტერფეისების ნაკრებით. იგი ემსახურება როგორც კონტეინერი ელემენტების ჯგუფისთვის. კოლექციები საშუალებას გაძლევთ შეინახოთ, განაახლოთ, მიიღოთ ელემენტების ნაკრები. ის ხელს უწყობს მონაცემთა სტრუქტურებთან მუშაობას, როგორიცაა სიები, კომპლექტები, ხეები და რუქები. სია არის Collection Framework-ის ინტერფეისი. ArrayList და LinkedList არის ორი კლასი კოლექციების ჩარჩოში. ისინი ახორციელებენ კოლექციის ინტერფეისს და სიის ინტერფეისს.ეს სტატია განიხილავს განსხვავებას ArrayList-სა და LinkedList-ს შორის. ArrayList არის კლასი, რომელიც აფართოებს AbstractList-ს და ახორციელებს List ინტერფეისს, რომელიც შიგნიდან იყენებს დინამიურ მასივს მონაცემთა ელემენტების შესანახად. LinkedList არის კლასი, რომელიც აფართოებს AbstractSequentialList-ს და ახორციელებს List, Deque და Queue ინტერფეისებს, რომლებიც შიგნიდან იყენებენ ორმაგად დაკავშირებულ სიას მონაცემთა ელემენტების შესანახად. ეს არის მთავარი განსხვავება ArrayList-სა და LinkedList-ს შორის.

რა არის ArrayList?

ArrayList კლასი გამოიყენება დინამიური მასივების შესაქმნელად. ჩვეულებრივი მასივისაგან განსხვავებით, დინამიური მასივის ზომა არ არის დაფიქსირებული. ArrayList კლასის გამოყენებით შექმნილ ობიექტს უფლება აქვს შეინახოს ელემენტების ნაკრები სიაში. ტევადობა ავტომატურად იზრდება, ამიტომ პროგრამისტს შეუძლია ელემენტების დამატება სიაში. ArrayList კლასი აფართოებს AbstractList კლასს, რომელიც ახორციელებს List ინტერფეისს. ამიტომ, List ინტერფეისის მეთოდები შეიძლება გამოიყენოს ArrayList-მა. ელემენტებზე წვდომისთვის გამოიყენება get() მეთოდი. Add() მეთოდი შეიძლება გამოყენებულ იქნას სიაში ელემენტების დასამატებლად. Remove() მეთოდი გამოიყენება ელემენტის სიიდან ამოსაღებად. იხილეთ ქვემოთ მოცემული პროგრამა.

განსხვავება ArrayList-სა და LinkedList-ს შორის
განსხვავება ArrayList-სა და LinkedList-ს შორის
განსხვავება ArrayList-სა და LinkedList-ს შორის
განსხვავება ArrayList-სა და LinkedList-ს შორის

სურათი 01: ArrayList-ის მაგალითი

ზემოხსენებული პროგრამის მიხედვით იქმნება ArrayList-ის ობიექტი. დამატების მეთოდის გამოყენებით, ელემენტები შეიძლება დაემატოს დინამიურად. ელემენტები "A", "B", "C", "D" და "E" ემატება დამატების მეთოდის გამოყენებით. ამოღების მეთოდი გამოიყენება სიიდან ელემენტის ამოსაღებად. ამოღების მეთოდზე 4-ის გადაცემისას, მე-4 ინდექსის ასო, რომელიც არის „E“ამოღებულია სიიდან. სიის გამეორებისას for მარყუჟის გამოყენებით, ასოები A, B, C და D დაიბეჭდება.

რა არის LinkedList?

ArrayList-ის მსგავსად, LinkedList გამოიყენება მონაცემთა ელემენტების დინამიურად შესანახად. LinkedList კლასის გამოყენებით შექმნილ ობიექტს უფლება აქვს შეინახოს ელემენტების ნაკრები სიაში. ტევადობა ავტომატურად იზრდება, ამიტომ პროგრამისტს შეუძლია ელემენტების დამატება სიაში. ის იძულებით იყენებს ორმაგად დაკავშირებულ სიას მონაცემების შესანახად. ორმაგად დაკავშირებულ სიაში მონაცემები ინახება კვანძების სახით. თითოეული კვანძი შეიცავს ორ ბმულს. პირველი ბმული მიუთითებს წინა კვანძზე. შემდეგი ბმული მიუთითებს მომდევნო კვანძზე თანმიმდევრობით.

LinkedList კლასი აფართოებს AbstractSequentialList კლასს და ახორციელებს List ინტერფეისს. ამიტომ, List ინტერფეისის მეთოდები შეიძლება გამოყენებულ იქნას LinkedList-ის მიერ. get() მეთოდი შეიძლება გამოყენებულ იქნას სიის ელემენტებზე წვდომისთვის. Add() მეთოდი შეიძლება გამოყენებულ იქნას სიაში ელემენტების დასამატებლად. Remove() მეთოდი გამოიყენება ელემენტის სიიდან ამოსაღებად. იხილეთ ქვემოთ მოცემული პროგრამა.

ძირითადი განსხვავება ArrayList-სა და LinkedList-ს შორის
ძირითადი განსხვავება ArrayList-სა და LinkedList-ს შორის
ძირითადი განსხვავება ArrayList-სა და LinkedList-ს შორის
ძირითადი განსხვავება ArrayList-სა და LinkedList-ს შორის

სურათი 02: მაგალითი LinkedList-ით

ზემოხსენებული პროგრამის მიხედვით იქმნება LinkedList-ის ობიექტი. დამატების მეთოდის გამოყენებით, ელემენტები შეიძლება დაემატოს დინამიურად. ელემენტები "A", "B", "C", "D" და "E" ემატება დამატების მეთოდის გამოყენებით. ამოღების მეთოდი გამოიყენება სიიდან ელემენტის ამოსაღებად. ამოღების მეთოდზე 4-ის გადაცემისას, მე-4 ინდექსის ასო, რომელიც არის „E“ამოღებულია სიიდან. for მარყუჟის გამოყენებით გამეორებისას, ასოები A, B, C და D დაიბეჭდება.

რა მსგავსებაა ArrayList-სა და LinkedList-ს შორის?

  • ArrayList და LinkedList ახორციელებენ List ინტერფეისს.
  • ArrayList და LinkedList შეიძლება შეიცავდეს დუბლიკატ ელემენტებს.
  • ArrayList და LinkedList ინარჩუნებენ ჩასმის თანმიმდევრობას.

რა განსხვავებაა ArrayList-სა და LinkedList-ს შორის?

ArrayList vs LinkedList

ArrayList არის კლასი, რომელიც აფართოებს AbstractList-ს და ახორციელებს List ინტერფეისს, რომელიც შიგნიდან იყენებს დინამიურ მასივს მონაცემთა ელემენტების შესანახად. LinkedList არის კლასი, რომელიც აფართოებს AbstractSequentialList-ს და ახორციელებს List, Deque, Queue ინტერფეისებს, რომლებიც შიგნიდან იყენებს ორმაგად დაკავშირებულ სიას მონაცემთა ელემენტების შესანახად.
ელემენტებზე წვდომა
ArrayList-ის ელემენტებზე წვდომა უფრო სწრაფია, ვიდრე LinkedList-ზე. LinkedList-ის ელემენტებზე წვდომა უფრო ნელია, ვიდრე ArrayList-ზე.
ელემენტებით მანიპულირება
ArrayList-ის ელემენტების მანიპულირება უფრო ნელია, ვიდრე LinkedList. LinkedList-ის ელემენტებით მანიპულირება უფრო სწრაფია, ვიდრე ArrayList.
ქცევა
ArrayList მოქმედებს როგორც სია. LinkedList მოქმედებს როგორც სია და რიგი.

შეჯამება – ArrayList vs LinkedList

შეგროვების ჩარჩო იძლევა მონაცემთა სტრუქტურებთან მუშაობის საშუალებას, როგორიცაა სიები, ხეები, რუკები და კომპლექტები. სია არის კოლექციის ჩარჩოს ინტერფეისი. ამ სტატიაში განხილული იყო განსხვავება ArrayList-სა და LinkedList-ს შორის. ArrayList არის კლასი, რომელიც აფართოებს AbstractList-ს და ახორციელებს List ინტერფეისს, რომელიც შიგნიდან იყენებს დინამიურ მასივს მონაცემთა ელემენტების შესანახად. LinkedList არის კლასი, რომელიც ავრცელებს AbstractSequentialList-ს და ახორციელებს List, Deque, Queue ინტერფეისებს, რომლებიც შიგნიდან იყენებს ორმაგად დაკავშირებულ სიას მონაცემთა ელემენტების შესანახად. ეს არის განსხვავება ArrayList-სა და LinkedList-ს შორის.

გირჩევთ: