Негизги айырмасы – ArrayList жана LinkedList
Жыйнактар дайындарды сактоо үчүн пайдалуу. Кадимки массивде массивдин өлчөмү бекитилет. Кээде зарылчылыкка жараша өсө ала турган массивдерди түзүү талап кылынат. Java сыяктуу программалоо тилдеринде коллекциялар бар. Бул класстардын жана интерфейстердин жыйындысы бар алкак. Ал элементтердин тобу үчүн контейнер катары кызмат кылат. Коллекциялар элементтердин топтомун сактоого, жаңыртууга, алууга мүмкүндүк берет. Бул тизмелер, топтомдор, дарактар жана карталар сыяктуу маалымат структуралары менен иштөөгө жардам берет. Тизме Collection алкагында интерфейси болуп саналат. ArrayList жана LinkedList коллекциялар алкагындагы эки класс. Алар коллекция интерфейсин жана тизме интерфейсин ишке ашырышат. Бул макалада ArrayList жана LinkedList ортосундагы айырма талкууланат. ArrayList - бул AbstractListти кеңейтүүчү жана List интерфейсин ишке ашыруучу класс, ал ички маалымат элементтерин сактоо үчүн динамикалык массивди колдонот. LinkedList - бул AbstractSequentialListти кеңейтүүчү класс жана List, Deque жана Queue интерфейстерин ишке ашырат, алар маалымат элементтерин сактоо үчүн эки эселенген тизмени колдонушат. Бул ArrayList менен LinkedListтин негизги айырмасы.
ArrayList деген эмне?
ArrayList классы динамикалык массивдерди түзүү үчүн колдонулат. Кадимки массивден айырмаланып, динамикалык массивдин өлчөмү туруктуу эмес. ArrayList классынын жардамы менен түзүлгөн объектке тизмедеги элементтердин топтомун сактоого уруксат берилет. Дарамети автоматтык түрдө көбөйөт, ошондуктан программист тизмеге элементтерди кошо алат. ArrayList классы List интерфейсин ишке ашырган AbstractList классын кеңейтет. Демек, List интерфейсинин ыкмаларын ArrayList колдонсо болот. Элементтерге жетүү үчүн get() ыкмасы колдонулат. Тизмеге элементтерди кошуу үчүн add() ыкмасын колдонсо болот. Remove() ыкмасы тизмеден элементти алып салуу үчүн колдонулат. Төмөнкү программаны караңыз.
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() ыкмасы тизмеден элементти алып салуу үчүн колдонулат. Төмөнкү программаны караңыз.
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 жана LinkedList
Жыйноо алкагы тизмелер, дарактар, карталар жана топтомдор сыяктуу маалымат структуралары менен иштөөгө мүмкүндүк берет. Тизме коллекциялык алкактын интерфейси болуп саналат. Бул макалада ArrayList жана LinkedList ортосундагы айырма талкууланды. ArrayList - бул AbstractListти кеңейтүүчү класс жана маалымат элементтерин сактоо үчүн динамикалык массивди ичтен колдонгон List интерфейсин ишке ашырат. LinkedList - бул AbstractSequentialListти кеңейтүүчү класс жана List, Deque, Queue интерфейстерин ишке ашырат, ал ички ичинде маалымат элементтерин сактоо үчүн кош байланышкан тизмени колдонот. Бул ArrayList менен LinkedListтин айырмасы.