Негизги айырма – C тилиндеги жалпы жана жалпы эмес жыйнак
Жалпы коллекция – бул базалык коллекциянын түрүнөн алынбастан жана типке тиешелүү мүчөлөрдү ишке ашырбастан типтин коопсуздугун камсыз кылган класс. Жалпы эмес коллекция – бул стектерге, кезектерге, тизмелерге жана хэш таблицаларга колдоо көрсөткөн маалыматтарды сактоо жана издөө үчүн адистештирилген класс. C тилиндеги Жалпы жана Ненерик Коллекциянын ортосундагы негизги айырма - Жалпы жыйнак катуу терилген, ал эми Жалпы эмес жыйнак катуу терилген эмес.
C тилиндеги Generic Collection деген эмне?
Жалпы эмес жыйнактар, мисалы ArrayList, Queue, Stack ж.б.ар кандай типтеги маалыматтардын элементтерин сактай алат. Элементтерди алууда программист аларды туура маалымат түрүнө киргизүү керек. Болбосо, ал иштөө убактысынын өзгөчөлүгүнө алып келиши мүмкүн. Бул маселени чечүү үчүн жалпы чогултуу класстарын колдонсо болот. Жалпы коллекциялар элементтерди алардын чыныгы түрлөрүнүн массивдеринде сактайт. Ошондуктан, типтеги кастинг талап кылынбайт. Алар көрсөтүлгөн түрдөгү же типтеги элементтерди сактоо үчүн колдонулушу мүмкүн. Кээ бир Жалпы жыйнак класстары: Тизме, Сөздүк, Сорттолгон тизмеси, ХэшСет, Кезек, Стек.
Жалпы тизмеде көрсөтүлгөн түрдөгү элементтер бар. Ал элементтерди кошуп жатканда тизмени ошого жараша көбөйтө алат. Төмөнкүдөй билдирүү болгондо, тизмеге1 сактала турган бардык элементтер бүтүн сандар болушу керек, Тизме тизмеси1 – жаңы тизме ();
C тилиндеги Жалпы сөздүк – бул ачкычтардын жана баалуулуктардын жыйындысы. Төмөнкүдөй билдирүү болгондо, объект сөздүгү1 int түрүндөгү баскычтарды жана сап түрүнүн маанилерин сактай алат.
Сөздүк1=жаңы Сөздүк ();
Жалпы Сорттолгон тизме жыйнагы демейки боюнча ачкыч жана маани жуптарын ачкычтын өсүү тартибинде сактайт. Төмөндө мисал int түрүндөгү ачкычты жана сап түрүнүн маанисин сактайт.
SortedList s0=жаңы Сорттолгон тизме ();
Бул C тилиндеги Generic Collection үчүн бир нече мисалдар. Бул коллекциялар көрсөтүлгөн маалымат түрлөрүнүн бир нече маанилерин сактай алат. Ошентип, алар катуу терилген.
C тилиндеги жалпы эмес жыйнак деген эмне?
Массивдерди бир нече элементтерди сактоо үчүн колдонсо болот. Бир жетишпеген жагы, ал бир эле маалымат түрүндөгү элементтерди сактай алат. C тилинде көптөгөн баалуулуктарды же коллекциялар деп аталган объекттерди сактоо үчүн колдонула турган класстар бар. Коллекциялар объекттерди сактоого, жаңыртууга, жок кылууга, издөөгө, сорттоого жардам берет. Коллекциянын көлөмүн динамикалык түрдө чоңойтсо же кичирейтсе болот.
Айрым Жалпы эмес Коллекция класстары: ArrayList, SortedList, Stack, Queue жана HashTable. Ар бир коллекция классы IEnumerable интерфейсин ишке ашырат. Бул коллекциядагы элементтердин элементтерин foreach цикли аркылуу кайталоого жардам берет.
ArrayList – массивдин альтернативасы. 10 элементти сактай турган массив бар болсо, ал 20 элементти сактай албайт. Эгерде массив 10 элементке инициализацияланган болсо, бирок 5 гана элементти сактаса, анда калгандары колдонулбайт. Демек, массив бекитилген. ArrayListте индекске жараша элементтерди кошуу же алып салуу мүмкүн. Бул динамикалык эстутумду бөлүштүрүүгө мүмкүндүк берет. Элементтерди өсүү тартибинде сорттоо ыкмасын колдонсо болот.
HashTable негизги маани жуптарынын жыйнагын көрсөтүү үчүн колдонулат. Алар ачкычтын hashCode негизинде уюштурулган. Демек, ар бир элементтин негизги маани жуптары бар. Ачкычты коллекциядагы белгилүү бир элементке жетүү үчүн колдонсо болот. Стек элементтерге эң акыркы кирген, биринчи чыгуу мүмкүнчүлүгүн билдирет. Кезек нерселерге биринчи киргенде, биринчи чыгууда колдонулат. Бул C тарабынан колдоого алынган жалпы эмес жыйнактардын айрымдары. Бул коллекциялар ар кандай түрдөгү элементтерди сактай алат.
C тилиндеги жалпы жана жалпы эмес коллекциянын ортосунда кандай окшоштук бар?
Жалпы жана Ненерик Коллекцияны C тилинде бир нече элементтерди сактоо үчүн колдонсо болот
C тилиндеги жалпы жана жалпы эмес коллекциянын ортосунда кандай айырма бар?
C тилиндеги жалпы жана жалпы эмес жыйнак |
|
Жалпы коллекция – бул базалык коллекциянын түрүнөн алынбастан жана типке тиешелүү мүчөлөрдү ишке ашырбастан типтин коопсуздугун камсыз кылган класс. | Жалпы эмес коллекция – бул стектерге, кезектерге, тизмелерге жана хэш таблицаларга колдоо көрсөткөн маалыматтарды сактоо жана издөө үчүн адистештирилген класс. |
Ат мейкиндиги | |
Жалпы Collection класстары Системада. Коллекциялар. Жалпы аталыш мейкиндиги. | Жалпы эмес Коллекция класстары Системада. Жыйнактын аталыш мейкиндиги. |
Түр | |
Жалпы жыйнак катуу терилген. | Жалпы эмес жыйнак катуу терилген эмес. |
Элементтерди сактоо | |
Жалпы жыйнактар элементтерди алардын чыныгы түрлөрүнүн массивдеринде сактайт. | Жалпы эмес коллекциялар элементтерди объекттик массивдерде сактайт, андыктан ал ар кандай типтеги маалыматтарды сактай алат. |
Кыскача – C тилиндеги жалпы жана жалпы эмес жыйнак
Бул макалада C тилиндеги жалпы жана жалпы эмес коллекциянын ортосундагы айырма талкууланган. Жалпы жана Ненерик Коллекциянын айырмасы, Жалпы жыйнак катуу терилген, ал эми Жалпы эмес жыйнак катуу терилген эмес.