სხვაობა Arraylist-სა და Vector-ს შორის

სხვაობა Arraylist-სა და Vector-ს შორის
სხვაობა Arraylist-სა და Vector-ს შორის

ვიდეო: სხვაობა Arraylist-სა და Vector-ს შორის

ვიდეო: სხვაობა Arraylist-სა და Vector-ს შორის
ვიდეო: SQL Server Tutorial - Comparing triggers, functions, and procedures 2024, ივლისი
Anonim

Arraylist vs ვექტორი

მასივის სია შეიძლება ჩაითვალოს დინამიურ მასივად, რომელიც შეიძლება გაიზარდოს ზომით. ამ მიზეზის გამო, პროგრამისტს არ სჭირდება მასივის სიდიდის ცოდნა, როდესაც ის განსაზღვრავს მას. ვექტორი ასევე შეიძლება ჩაითვალოს, როგორც მასივი, რომელიც შეიძლება გაიზარდოს ზომაში. ვექტორების ადვილად განაწილება და გამოყენება შესაძლებელია, როდესაც შენახვის საჭირო ზომა არ არის ცნობილი გაშვებამდე.

რა არის Arraylist?

მასივის სია შეიძლება ჩაითვალოს დინამიურ მასივად, რომელიც შეიძლება გაიზარდოს ზომით. ამიტომ მასივების სია იდეალურია გამოსაყენებლად იმ სიტუაციაში, როდესაც თქვენ არ იცით დეკლარაციის დროს საჭირო ელემენტების ზომა.ჯავაში მასივებს შეუძლიათ მხოლოდ ობიექტების შენახვა, მათ არ შეუძლიათ უშუალოდ პრიმიტიული ტიპების შენახვა (შეგიძლიათ განათავსოთ პრიმიტიული ტიპები ობიექტის შიგნით ან გამოიყენოთ პრიმიტიული ტიპების შეფუთვის კლასები). როგორც წესი, მასივებს მიეწოდება მეთოდები ჩასმის, წაშლისა და ძიების შესასრულებლად. ელემენტზე წვდომის დროის სირთულე არის o(1), ხოლო ჩასმა და წაშლა აქვს o(n) დროის სირთულე. ჯავაში, მასივების სიის გადაკვეთა შესაძლებელია foreach მარყუჟების, იტერატორების ან უბრალოდ ინდექსების გამოყენებით. ჯავაში, მასივები დაინერგა 1.2 ვერსიიდან და ის არის Java Collections Framework-ის ნაწილი.

რა არის ვექტორი?

Vector ასევე არის მასივი, რომელიც შეიძლება გაიზარდოს ზომით. ვექტორები შეიძლება ადვილად გადანაწილდეს და მათი გამოყენება შესაძლებელია, როდესაც შენახვის საჭირო ზომა არ არის ცნობილი გაშვებამდე. ვექტორებს ასევე შეუძლიათ მხოლოდ ობიექტების შენახვა და არ შეუძლიათ პრიმიტიულ ტიპებს. ვექტორები სინქრონიზებულია, ამიტომ მათი უსაფრთხოდ გამოყენება შესაძლებელია მრავალძაფის გარემოში. ვექტორებს აქვთ ობიექტების დამატების, ობიექტების წაშლისა და ობიექტების ძიების მეთოდები.ჯავაში arraylist-ის მსგავსად, ვექტორების გავლა შესაძლებელია foreach მარყუჟების, iterators ან უბრალოდ ინდექსების გამოყენებით. რაც შეეხება Java-ს, ვექტორები ჩართულია Java-ს პირველი ვერსიიდან.

რა განსხვავებაა Arraylist-სა და Vector-ს შორის?

მიუხედავად იმისა, რომ ორივე მასივი და ვექტორები ძალიან ჰგავს დინამიურ მასივებს, რომლებიც შეიძლება გაიზარდოს ზომაში, მათ აქვთ მნიშვნელოვანი განსხვავებები. მასივების და ვექტორებს შორის მთავარი განსხვავება ისაა, რომ ვექტორები სინქრონიზებულია, ხოლო მასივები არასინქრონიზებულია. ამიტომ მასივების გამოყენება მრავალძაფიან გარემოში არ იქნება შესაფერისი, ხოლო ვექტორები შეიძლება უსაფრთხოდ იქნას გამოყენებული მრავალძაფიან გარემოში (რადგან ისინი უსაფრთხოა ძაფებით). მაგრამ ვექტორებში სინქრონიზაცია გამოიწვევს შესრულების შემცირებას. ამიტომ არ იქნება კარგი იდეა ვექტორების გამოყენება ერთ ხრახნიან გარემოში. შინაგანად, როგორც მასივები, ასევე ვექტორები იყენებენ მასივებს ობიექტების შესანახად. როდესაც არსებული სივრცე არ არის საკმარისი, ვექტორები გააორმაგებს მისი შიდა მასივის ზომას, ხოლო arraylists გაზრდის შიდა მასივის ზომას 50%-ით.მაგრამ როგორც მასივების, ასევე ვექტორების გამოყენებისას, შესაბამისი საწყისი სიმძლავრის მინიჭებით, შეიძლება თავიდან იქნას აცილებული შიდა მასივის არასაჭირო ზომის შეცვლა. იმ სიტუაციაში, როდესაც მონაცემთა ზრდის ტემპი ცნობილია, ვექტორების გამოყენება უფრო შესაფერისი იქნება, რადგან შეიძლება განისაზღვროს ვექტორების დამატებითი მნიშვნელობა.

გირჩევთ: